Ich versuche, ein Layout zu erstellen, das dem folgenden ähnelt:
+---+---+---+
| | | |
+---+---+---+
| |
+-----------+
wo der Boden den Raum der oberen Reihe ausfüllt.
Wenn dies eine tatsächliche Tabelle wäre, könnte ich dies leicht erreichen <td colspan="3">
, aber da ich einfach ein tabellenähnliches Layout erstelle , kann ich keine <table>
Tags verwenden. Ist das mit CSS möglich?
colspan
AttributAntworten:
Es gibt kein einfaches, elegantes CSS-Analogon für
colspan
.Die Suche zu diesem Thema wird eine Vielzahl von Lösungen ergeben, die eine Vielzahl von Alternativen enthalten, einschließlich absoluter Positionierung, Größenanpassung sowie einer ähnlichen Vielzahl von browser- und umstandsspezifischen Einschränkungen. Lesen Sie und treffen Sie die bestmögliche Entscheidung, basierend auf dem, was Sie finden.
quelle
colspan
das richtige Werkzeug für den Job ist. Meine Antwort war zu 75% richtig und Ihre zu 100% richtig. Sie sollten zu SO zurückkehren.Soweit ich weiß, gibt
column-span
es in CSS kein Colspan, aber in naher Zukunft wird es ein mehrspaltiges Layout geben. Da es sich jedoch nur um einen Entwurf in CSS3 handelt, können Sie ihn hier einchecken . Auf jeden Fall können Sie eine Problemumgehung mitdiv
undspan
mit einer solchen tabellenartigen Anzeige durchführen.Dies wäre der HTML:
Und das wäre das CSS:
Der einzige Grund, diesen Trick zu verwenden, besteht darin, den Vorteil des
table-layout
Verhaltens zu nutzen. Ich verwende ihn häufig, wenn nur die Einstellung von div und span width auf einen bestimmten Prozentsatz unsere Entwurfsanforderungen nicht erfüllt.Aber wenn Sie nicht von dem
table-layout
Verhalten profitieren müssen , dann würde Durilais Antwort Ihnen genug passen.quelle
.span { ...
sollte es seinspan { ...
.div
Tags zur Anzeige von Tabellendaten ist genauso schlecht wie die Verwendung vontable
s zur Steuerung des SeitenlayoutsEin weiterer Vorschlag ist die Verwendung von Flexbox anstelle von Tabellen insgesamt. Dies ist natürlich eine "moderne Browser" -Sache, aber komm schon, es ist 2016;)
Zumindest könnte dies heutzutage eine alternative Lösung für diejenigen sein, die nach einer Antwort suchen, da der ursprüngliche Beitrag aus dem Jahr 2010 stammt.
Hier ist eine großartige Anleitung: https://css-tricks.com/snippets/css/a-guide-to-flexbox/
quelle
quelle
Das gehört nicht zum Geltungsbereich von CSS.
colspan
beschreibt die Struktur des Seiteninhalts oder gibt den Daten in der Tabelle, die HTML-Aufgabe ist, eine Bedeutung.quelle
So geben Sie eine aktuelle Antwort: Der beste Weg, dies heute zu tun, besteht darin, das CSS-Rasterlayout wie folgt zu verwenden:
und der HTML
quelle
Sie könnten versuchen, ein Rastersystem wie http://960.gs/ zu verwenden.
Ihr Code würde ungefähr so aussehen, vorausgesetzt, Sie verwenden ein "12-Spalten" -Layout:
quelle
Versuchen Sie
display: table-cell; width: 1%;
, Ihrem Tabellenzellenelement etwas hinzuzufügen .Code-Snippet anzeigen
quelle
Ich hatte einige Erfolge, obwohl es auf ein paar Eigenschaften beruht, um zu funktionieren:
table-layout: fixed
border-collapse: separate
und Zellenbreiten, die sich leicht teilen / überspannen, dh 4 x Zellen mit einer Breite von 25%:
https://jsfiddle.net/sfjw26rb/2/
Das Anwenden von display: table-header-group oder table-footer-group ist außerdem eine praktische Möglichkeit, um 'row'-Elemente an den oberen / unteren Rand der' table 'zu springen.
quelle
Wenn Sie div und span verwenden, nimmt es mehr Codegröße ein, wenn die Datagrid-Tabellenzeile mehr Volumen hat. Dieser Code wird in allen Browsern überprüft
HTML:
CSS:
quelle
http://www.quackit.com/css/css3/properties/css_column-span.cfm
quelle
table-cell
Spanne mit mehreren Tabellenspalten haben.column-span
dient zur Steuerung eines Spaltenlayouts. So können Sie Text über mehrere Spalten fließen lassen, so wie es Zeitungen tun.Wenn Sie hierher kommen, weil Sie das
colspan
Attribut aktivieren oder deaktivieren müssen (z. B. für ein mobiles Layout):Dupliziere das
<td>
s und zeige nur die mit dem gewünschtencolspan
:quelle
Die CSS-Eigenschaften "Spaltenanzahl", "Spaltenlücke" und "Spaltenspanne" können dies so tun, dass alle Spalten der Pseudotabelle im selben Wrapper bleiben (HTML bleibt schön und ordentlich).
Die einzigen Einschränkungen bestehen darin, dass Sie nur eine Spalte oder alle Spalten definieren können und die Spaltenspanne in Firefox noch nicht funktioniert. Daher ist zusätzliches CSS erforderlich, um sicherzustellen, dass es korrekt angezeigt wird. https://www.w3schools.com/css/css3_multiple_columns.asp
quelle
Ich bin hierher gekommen, weil der WordPress-Tabellenblock derzeit den Colspan-Parameter nicht unterstützt und ich dachte, ich werde ihn durch CSS ersetzen. Dies war meine Lösung, vorausgesetzt, die Spalten haben die gleiche Breite:
quelle
Sie können immer
position:absolute;
Dinge und Breiten angeben. Es ist keine sehr flüssige Art, es zu tun, aber es würde funktionieren.quelle
Ich habe diese Geige geschaffen:
http://jsfiddle.net/wo40ev18/3/
HTML
CSS
quelle
Media Query-Klassen können verwendet werden, um mit doppeltem Markup etwas Passables zu erreichen. Hier ist mein Ansatz mit Bootstrap:
Colspan 1 für Handys, Colspan 5 für andere, bei denen CSS die Arbeit erledigt.
quelle