2009-07-13 103 views

回答

10

Ian Hixie在这里详细解释:The mystery of why only four properties apply to table columns。相关报价:

文本的颜色取决于其元素的“颜色”属性。除非指定,否则'color'属性(基本上)默认为'inherit',这意味着“采用父元素的值”。

因此,对于单元格中的某些文本,颜色由单元格的'color'属性确定,该单元格取自从表格中取出的行,取自表格的父级,因此上。

那一栏呢?那么这个专栏不是细胞的祖先之一,所以它永远不会有人参与!问题在于此。

0

可能是因为表格中的每一行并不一定必须为您的列显示一个单元格(例如,因为colspan)。该单元格应该从哪个列继承它的样式?只是一个猜测。

+0

一个完全错误的猜测。查看其他答案。 – Quentin 2009-07-13 13:14:13

8

只是胡乱刺在基于我有限的了解黑暗:

我想通过柱相关元素的造型受到限制,因为虽然<col><colgroup>代表单元的列,它实际上并不包含它们(他们实际上由<tr> s包含)。由于这是优先级和特殊性以及级联问题(因为只能在包含/容器元素之间进行级联) - 当发生与<tr><col>(它们与多继承层次结构中的级别相同)中的冲突样式规则时 - 应该细胞实际使用?

至于为什么特定少数的风格属性是允许的,但:不知道。

+1

对于冲突,我链接的页面表示单元格优先于行,然后是列。因此,除非在行或单元格级别重写,否则应用列上的任何样式。 – DisgruntledGoat 2009-07-15 09:46:22

3

一个字:模棱两可。细胞必须是行的孩子;否则它不会成为一张桌子。但是没有列可以下降。使用colspan意味着一个单元格可以分成两列。为什么不让开发人员在每个第n个单元上放置一个class,而不是试图想出一些令人困惑的方式?

如果仔细观察链接的规格,您将看到尝试解决歧义问题。 width属性指定了最小值; background需要一个backseat行和单元格;和border引用了“冲突解决算法”。甚至有算法border的唯一原因是因为它有理由理解谁应该“赢”(详见算法)。但你能想象一下,试图找出哪个colorfont应该“赢”?

+0

呃,@colspan和@rowspan有什么区别? – Ms2ger 2009-07-13 19:12:52

+0

@ ms2ger:使用colspan,跨越多行的单元格始终是特定“”元素的后代。 – DisgruntledGoat 2009-07-15 09:41:45