题
W3指定 表格列只允许四个 CSS 规则(其中 <col>
element) - 边框、背景、宽度和可见性。
有谁知道这个决定背后的原因?如果可以有边框和背景,为什么不能有字体和颜色呢?
解决方案
伊恩Hixie详细解释了这里:的,为什么只有四个属性适用于表列谜。相关报价:
文本的颜色是依赖于它的元件的“颜色”属性。除非指定,“颜色”属性(基本上)默认为“继承”,这意味着“取父元素的值”。
因此,对于小区中的一些文本,颜色被细胞,这是从该行,这是从该表,它是从表的父采取采取采取的“颜色”属性来确定,等等
关于列什么?那么,该列不是细胞的祖先之一,所以它从来没有得到一个查询中!和其中存在的问题。
其他提示
只是胡乱刺在基于我有限的了解黑暗:
我想通过柱相关的元素的造型受到限制,因为虽然<col>
和<colgroup>
代表单元的列,它实际上不包含它们(他们实际上由<tr>
s包含)。有了这个自带的优先级和特异性和级联的问题(因为级联只能包含之间完成/容器元素) - 从<tr>
和<col>
(这将是一个多重继承层次结构中的同一级别)时,冲突的样式规则发生 - 这应该电池实际使用?
至于为什么风格,特别是少数属性是允许的,虽然:不知道
一个词:歧义。单元格必须是行的子单元格;否则它就不是一张桌子了。但没有可以下降的柱子。使用 colspan
意味着一个单元格可以位于两列中。与其试图想出一些令人困惑的解决办法,为什么不让开发人员放置一个 class
在每个第 n 个单元格上?
如果您仔细查看链接到的规范,您将看到解决歧义的尝试。这 width
属性指定最小值;这 background
排在行和单元的后座;和 border
引用“冲突解决算法”。甚至有算法的唯一原因 border
是因为可以合理地理解谁应该“获胜”(详细信息请参见算法)。但你能想象尝试找出哪个 color
或者 font
应该“赢”吗?
可能是因为在表中各行不一定必须以显示细胞为您的(因为例如列跨度)柱。这列应是细胞继承它的风格的?只是一个猜测。