有没有办法根据表的id修改一个表的单元格的CSS属性,而不是特定的子ID?
我想改变一个表的外观(例如,给每个单元格设置一个彩色边框),另一种方式,但我想避免为每个单元格指定一个id。
要清楚,我不需要单独访问表格中的每个单元格 - 我只想设置各种表格的“子”单元格的所有属性。
答案 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。