请看这个小提琴:
http://jsfiddle.net/uqJHf/
我已经将第一列设置为以红色背景显示。
然而,奇数/偶数样式覆盖了它。即使添加了!重要;
有没有办法把这个修好?(而不必向
tr.row_odd td {
background:#efefef;
}
tr.row_even td {
background:green;
}
.col1 { background:red !important; }
<table>
<col class="col1"></col>
<tr class="row_odd"><td>test</td><td>test</td></tr>
<tr class="row_even"><td>test</td><td>test</td></tr>
</table>发布于 2011-11-24 21:22:39
首先,让我们来处理一下标记。我认为<col>应该是自关闭的,因为它不能包含任何文本或子元素,而且应该包装在<colgroup>中。您甚至可能需要为每一列添加额外的<col>标签(所以4列意味着4个<col>)。
<table>
<colgroup>
<col class="col1" />
<col />
</colgroup>
<tr class="row_odd"><td>test</td><td>test</td></tr>
<tr class="row_even"><td>test</td><td>test</td></tr>
</table>现在,已经对CSS进行了一些处理,现在看起来这取决于如何将CSS应用于<tr>和<tr>。如果您删除与<tr>相关的样式,您将看到样式被正确应用。
因此,我得出的结论是,样式是以分层的方式应用的,可能是因为列是表的一种元细节。设想这种情况的一种简单方法是,<tr>标记位于列的顶部,因为您已经为<tr>定义了一个background-color,所以列样式不会显示出来--因为颜色是不透明的。如果您将<tr>的background-color设置为RGBA值,您将看到列的颜色“闪耀而过”。
查看小提琴的修改,以进行演示:http://jsfiddle.net/uqJHf/4/
希望这对我有所帮助,因为在我的调查过程中,我也学到了一些新东西。
编辑:似乎不同意我所说的,如果<col>设置了background-color,它似乎不会将RGBA值应用于<tr>。但在Firefox7中工作...
https://stackoverflow.com/questions/8257360
复制相似问题