Warum ist Spalten Styling Tabelle nicht erlaubt?
-
12-09-2019 - |
Frage
W3 gibt , dass nur vier CSS-Regeln für die Tabelle erlaubt sind Spalten (mit <col>
Element.) - Rahmen, Hintergrund, Breite und Sichtbarkeit
Kennt jemand die Gründe für diese Entscheidung? Wenn Sie Grenzen und Hintergründe haben können, warum nicht Schriftarten und Farben?
Lösung
Ian Hixie erklärt im Detail hier: das Geheimnis, warum nur vier Eigenschaften auf Tabellenspalten anwenden . Relevante Zitat:
Die Farbe des Textes ist auf dem ‚Farbe‘ Eigentum seines Elements abhängig. Sofern nicht anders angegeben, die ‚Farbe‘ Eigenschaft (grundsätzlich) standardmäßig auf ‚erben‘, die „nehmen den Wert des übergeordneten Elements“ bedeuten.
Also für einen Text in einer Zelle wird die Farbe durch die ‚Farbe‘ Eigenschaft der Zelle bestimmt, die aus der Reihe genommen wird, die sich aus der Tabelle entnommen, die aus der Tabelle der Eltern genommen wird, und so weiter .
Was ist mit der Spalte? Nun, die Spalte ist nicht einer von der Zelle Vorfahren, so wird es nie einen Blick in! Und darin liegt das Problem.
Andere Tipps
Nur ein wilder stab im Dunkel, basierend auf meinem begrenztes Verständnis:
Ich denke, Styling über Spalte verwandte Elemente, weil beschränkt ist, obwohl <col>
und <colgroup>
Spalten von Zellen darstellen, ist es tatsächlich sie nicht enthalten (sie sind tatsächlich von den <tr>
s enthalten). Mit diesen Themen Vorrang und Spezifität kommt und die Kaskadierung (da Kaskadierung nur zwischen enthalten / Container-Elementen durchgeführt werden kann) - wenn widersprüchlichen Stilregeln aus den <tr>
und <col>
(das wäre das gleiche Niveau in einer Mehrfachvererbungshierarchie) auftreten - was sollte die Zelle tatsächlich nutzen?
Wie, warum diese besondere Handvoll Stil erlauben Attribute allerdings ist. Keine Ahnung
Ein Wort: Mehrdeutigkeit. Die Zellen haben Kinder von Zeilen sein; Es wäre kein Tisch anders sein. Aber es gibt keine Spalte von abzusteigen. Mit colspan
bedeutet, dass eine Zelle in zwei Spalten sein könnte. Anstatt zu versuchen, mit einem paar verwirrenden Weise zu kommen, warum nicht nur dem Entwickler Platz auf jeder n-ten Zelle einen class
lassen?
Wenn Sie genau an der Spezifikation aussehen, auf die Sie verknüpfen, werden Sie Versuche Mehrdeutigkeiten sehen. Die width
Eigenschaft gibt ein Minimum; die background
tritt in den Hintergrund zu der Reihe und Zelle; und border
verweist auf eine „Konfliktlösung Algorithmus“. Der einzige Grund, es gibt sogar einen Algorithmus für border
ist, weil es vernünftig ist zu verstehen, der sollte „gewinnen“ (den Algorithmus für Details). Aber könnte man sich vorstellen, um herauszufinden, welche color
oder font
sollte „gewinnen“?
Vielleicht, weil jede Zeile in der Tabelle muß für Ihre Spalte einer Zelle nicht unbedingt angezeigt werden (zum Beispiel wegen eines colspan). Welche Spalte sollte die Zelle erbt es ist Stil aus? Nur eine Vermutung.