调整特定表的所有单元格的CSS而不给每个单元格一个唯一的ID?

时间:2010-04-07 00:43:54

标签: html css css-tables

有没有办法根据表的id修改一个表的单元格的CSS属性,而不是特定的子ID?

我想改变一个表的外观(例如,给每个单元格设置一个彩色边框),另一种方式,但我想避免为每个单元格指定一个id。

要清楚,我不需要单独访问表格中的每个单元格 - 我只想设置各种表格的“子”单元格的所有属性。

1 个答案:

答案 0 :(得分:4)

如果可以识别特定的表,那么没问题。只需使用后代选择器:

#tableid1 td { border: 2px solid green; }

这就是说,作为tableid1 ID的表的后代的所有表格单元都有一个绿色边框。要包含<th>个单元格:

#tableid1 td, #tableid1 th { border: 2px solid green; }

注意:如果你有嵌套表,上面可能有问题,例如,你希望外表有边框而不是内表。通常不建议使用嵌套表,但有时没有其他选项。有多种方法可以解决这类问题。

首先,您可以使用子选择器(>):

#id1 > tbody > td { ... }

此处隐含<tbody>元素。

问题是IE6不支持子选择器。

另一种解决方法是取消效果:

#id1 td { border: 2px solid green; }
#id1 td td { border: 0 none; }

这并不总是实用,但它确实适用于IE6。