CSS 2.1 · Eigenschaft
CSS-Eigenschaft table-layout
Vollreferenz zu table-layout: erlaubte Werte, Ausgangswert, Vererbung, Beispiel – und ein Regler, der zeigt, was die Eigenschaft tut.
table-layout.probe { table-layout: fixed; }
| Eigenschaft | Wert | |
|---|---|---|
| margin | 24px | |
| padding | 16px |
Erläuterungen
Die Eigenschaft table-layout legt fest, wie die Auslegung von Zellen, Reihen und Spalten einer Tabelle berechnet wird. Sie ist auf Tabellen und, allgemein ausgedrückt, auf alle Elemente, deren Eigenschaft display den Wert table oder inline-table enthält, anwendbar.
Erlaubte Werte
Auszug aus der Spezifikation (die verwendete Syntax wird im Artikel CSS-Wertesyntax genauer erläutert):
'table-layout' auto | fixed | inherit
auto(Ausgangswert)- Hier gibt das W3C zwar einen Algorithmus an, mit dem die Breite der einzelnen Spalten bestimmt werden soll, es erlaubt aber gleichzeitig den Anwenderprogrammen, einen beliebigen eigenen, davon abweichenden, Algorithmus zu benutzen.
fixed- Der Wert
fixedbewirkt, dass das Anwenderprogramm eine Tabelle bereits dann darstellen kann, wenn die Breite der ersten Reihe feststeht. Nur die Breitenangaben innerhalb der ersten Reihe haben einen Einfluß auf die Breite der Tabelle und ihrer Spalten. Sie werden wie folgt festgelegt:- Alle angegebenen Breitenwerte von Elementen
col(falls vorhanden) werden direkt verwendet. - Darüber hinaus bestimmt jede Zelle, deren Eigenschaft
widthnicht mitautobesetzt ist, die Breite der zugehörigen Spalte. - Alle anderen Spalten erhalten den übrig gebliebenen Platz abzüglich der Rahmen und Zwischenräume zu gleichen Teilen.
- Die Summe der Breitenwerte für Spaltenbreiten, Zwischenräume und Rahmen ergibt dann die Breite der Tabelle, wenn dem Element
tableselbst nicht eine größere Breite gegeben wurde. - Ist die für
tablegegebene Breite größer als die Summe der Einzelwerte, wird der Überschuss gleichmäßig auf die Spalten verteilt.
- Alle angegebenen Breitenwerte von Elementen
- Sollten die Inhalte einzelner Tabellenzellen weiter unten zu groß sein, haben sie keinen Einfluß mehr auf die Spaltenbreite. Die Darstellung dieser Inhalte ist abhängig vom Wert der Eigenschaft
overflow. inherit- Bestimmt explizit, dass diese Eigenschaft denselben berechneten Wert wie im Elternelement annimmt.
Code-Beispiel
DIV.tabelle { display: inline-table; table-layout: fixed; }
Browserunterstützung
- Die Eigenschaft
table-layoutwird bisher von keinem Browser unterstützt.
Eric Meyer's CSS2 Test Suite zeigt am praktischen Beispiel, wie die Browser mit dieser Eigenschaft umgehen.
Keine Eigenschaft und kein Selektor stehen in einem Stylesheet für sich allein. In der Praxis kann das Zusammenspiel zwischen verschiedenen Elementen und Selektoren einen nicht zu unterschätzenden Einfluss auf die Fähigkeiten der Browser haben. Bugs treten oft erst durch das Zusammenwirken mehrerer Eigenschaften an unterschiedlichen Elementen auf.
Wechselwirkungen
Warum die automatische Berechnung teuer ist
Beim Ausgangswert bestimmt der Inhalt die Spaltenbreiten. Das Anwenderprogramm muss dafür die ganze Tabelle kennen, bevor es die erste Zeile setzen kann: für jede Zelle die kleinste und die größte sinnvolle Breite ermitteln, daraus die Spaltenbreiten verteilen und erst dann zeichnen.
Bei einer langen Tabelle ist das spürbar, und es hat eine zweite Folge: die Tabelle kann nicht schrittweise aufgebaut werden, während sie noch übertragen wird. Sie erscheint erst, wenn ihre letzte Zeile gelesen ist.
Der Vorteil ist ein Satz, der sich dem Inhalt anpasst. Eine Spalte mit kurzen Zahlen bleibt schmal, eine mit langen Namen wird breit, und nichts wird unnötig umbrochen. Für Tabellen, deren Inhalt unbekannt ist, bleibt das die richtige Wahl.
Was der feste Satz voraussetzt
Beim festen Satz ergibt sich die Breite aus der Tabelle selbst und aus der ersten Zeile. Spalten, für die dort eine Breite steht, bekommen sie; der Rest wird gleichmäßig verteilt. Der Inhalt der folgenden Zeilen hat keinen Einfluss mehr.
Damit ist die Tabelle nach der ersten Zeile gesetzt und kann sofort dargestellt werden. Der Preis ist, dass zu langer Inhalt umbrochen wird oder über die Zelle hinausläuft, je nachdem, was die übrigen Angaben zulassen.
Die Angabe wirkt nur, wenn die Tabelle eine Breite hat. Ohne Breitenangabe fällt das Verfahren auf die automatische Berechnung zurück, und das ist der übliche Grund dafür, dass der feste Satz scheinbar nichts bewirkt.
Besonderheiten im Medientyp handheld
Diese Eigenschaft ist nicht Teil des Standards CSS Mobile Profile 1.0. Das CSS-Tabellenmodell ist für das Medium handheld nicht anwendbar. Die Eigenschaften border-collapse, border-spacing, caption-side und empty-cells sind nicht Teil des Standards 'CSS Mobile'.
Weitere Charakteristika
Die Stylesheet-Schnellreferenz mit einer Zusammenfassung aller visuellen Eigenschaften kann auch als PDF-Datei herunter geladen werden.
- Ausgangswert
auto- Berechneter Wert
- Spezifizierter Wert
- Vererbung
- Nein
- Anwendbarkeit
- Siehe oben
- %-Bezugswert
- Nicht zutreffend
- Mediengruppe(n)
- Visual
Verwendete Standards
Dieser CSS-Referenz liegen folgende Spezifikationen zugrunde: CSS 1, CSS 2.1 CR und CSS Mobile.