W3 specifies只有四个CSS规则被允许用于表格列(使用<col>
元素) - 边框,背景,宽度和可见性。为什么样式表列不允许?
有没有人知道背后的原因?如果你可以有边框和背景,为什么不使用字体和颜色?
W3 specifies只有四个CSS规则被允许用于表格列(使用<col>
元素) - 边框,背景,宽度和可见性。为什么样式表列不允许?
有没有人知道背后的原因?如果你可以有边框和背景,为什么不使用字体和颜色?
Ian Hixie在这里详细解释:The mystery of why only four properties apply to table columns。相关报价:
文本的颜色取决于其元素的“颜色”属性。除非指定,否则'color'属性(基本上)默认为'inherit',这意味着“采用父元素的值”。
因此,对于单元格中的某些文本,颜色由单元格的'color'属性确定,该单元格取自从表格中取出的行,取自表格的父级,因此上。
那一栏呢?那么这个专栏不是细胞的祖先之一,所以它永远不会有人参与!问题在于此。
可能是因为表格中的每一行并不一定必须为您的列显示一个单元格(例如,因为colspan)。该单元格应该从哪个列继承它的样式?只是一个猜测。
只是胡乱刺在基于我有限的了解黑暗:
我想通过柱相关元素的造型受到限制,因为虽然<col>
和<colgroup>
代表单元的列,它实际上并不包含它们(他们实际上由<tr>
s包含)。由于这是优先级和特殊性以及级联问题(因为只能在包含/容器元素之间进行级联) - 当发生与<tr>
和<col>
(它们与多继承层次结构中的级别相同)中的冲突样式规则时 - 应该细胞实际使用?
至于为什么特定少数的风格属性是允许的,但:不知道。
对于冲突,我链接的页面表示单元格优先于行,然后是列。因此,除非在行或单元格级别重写,否则应用列上的任何样式。 – DisgruntledGoat 2009-07-15 09:46:22
一个字:模棱两可。细胞必须是行的孩子;否则它不会成为一张桌子。但是没有列可以下降。使用colspan
意味着一个单元格可以分成两列。为什么不让开发人员在每个第n个单元上放置一个class
,而不是试图想出一些令人困惑的方式?
如果仔细观察链接的规格,您将看到尝试解决歧义问题。 width
属性指定了最小值; background
需要一个backseat行和单元格;和border
引用了“冲突解决算法”。甚至有算法border
的唯一原因是因为它有理由理解谁应该“赢”(详见算法)。但你能想象一下,试图找出哪个color
或font
应该“赢”?
呃,@colspan和@rowspan有什么区别? – Ms2ger 2009-07-13 19:12:52
@ ms2ger:使用colspan,跨越多行的单元格始终是特定“
一个完全错误的猜测。查看其他答案。 – Quentin 2009-07-13 13:14:13