Question

W3 précise que seulement quatre règles CSS sont autorisées pour la table colonnes (avec l'élément de <col>). - frontière, fond, la largeur et la visibilité

Quelqu'un sait les raisons de cette décision? Si vous pouvez avoir des frontières et arrière-plans, pourquoi ne pas les polices et les couleurs?

Était-ce utile?

La solution

Ian Hixie explique en détail ici: Le mystère de la raison pour laquelle seulement quatre propriétés applicables aux colonnes de table . citation pertinente:

  

La couleur du texte dépend de la propriété « color » de son élément. Sauf indication contraire, la « couleur » propriété par défaut (essentiellement) a « hérite », ce qui signifie « prendre la valeur de l'élément parent ».

     

Donc, pour un texte dans une cellule, la couleur est déterminée par la propriété « color » de la cellule, qui est tirée de la ligne, qui est tirée de la table, qui est tiré de la mère de la table, etc. .

     

Qu'en est-il la colonne? Eh bien, la colonne n'est pas l'un des ancêtres de la cellule, il ne fait jamais regarder en! Et le problème est là.

Autres conseils

Juste un coup de poignard sauvage dans l'obscurité sur la base de ma compréhension limitée:

Je pense que le style par des éléments liés à la colonne est limitée parce que même si <col> et <colgroup> représentent les colonnes de cellules, il ne les contient pas réellement (ils sont en fait contenues par les <tr>s). Avec cela vient des questions de préséance et de spécificité et en cascade (puisque la cascade ne peut se faire entre contenu / éléments de conteneurs) - lorsque les règles de style contradictoires de la <tr> et <col> (ce qui serait le même niveau dans une hiérarchie d'héritage multiple) se - qui devrait la cellule réellement utiliser?

Quant à savoir pourquoi cette poignée particulière d'attributs de style est permise si:. Aucune idée

Un mot: ambiguïté. Les cellules doivent être des enfants de lignes; il ne serait pas une table autrement. Mais il n'y a pas de colonne pour descendre. L'utilisation colspan signifie qu'une cellule pourrait être dans deux colonnes. Plutôt que d'essayer de trouver une manière confuse, pourquoi ne pas simplement laisser la place du développeur un class sur chaque cellule nième?

Si vous regardez attentivement la spécification à laquelle vous établissez un lien, vous verrez les tentatives de résolution d'ambiguïté. La propriété width spécifie un minimum; le background prend une banquette arrière à la rangée et de la cellule; et border fait référence à un « algorithme de résolution des conflits ». La seule raison pour laquelle il y a même un algorithme pour border est parce qu'il est raisonnablement compris qui devrait « gagner » (voir l'algorithme pour plus de détails). Mais pourriez-vous imaginer essayer de comprendre ce qui color ou font doivent « gagner »?

Peut-être parce que chaque ligne de la table ne doit pas nécessairement afficher une cellule pour votre colonne (par exemple en raison d'un colspan). Quelle colonne doit cette cellule hériter son style de? Juste une supposition.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top