我需要在元素上添加一个样式,但该元素没有类或id,也不能编辑代码的那一部分以在其上放置类或id。
在jQuery中,我会选择.eq [4]或其他东西,但我只能使用CSS。
所以问题是 - 我可以设计第二个< td>在第二个< tr>?
<table class="tableClass">
<tr>
<td>...</td>
<td>...</td>
<td>...</td>
</tr>
<tr>
<td>...</td>
<td> I NEED TO STYLE THIS ONE </td>
<td>...</td>
</tr>
</table>
答案 0 :(得分:3)
您可以使用:nth-child()
,但需要将其与 td
和其父tr
一起使用:< / p>
.tableClass > tr:nth-child(2) > td:nth-child(2)
答案 1 :(得分:1)
答案 2 :(得分:1)
这是一种替代方法,也可以在IE7和IE8中使用,以获得更好的兼容性:
.tableClass tr + tr > td + td {
/* selects 2nd to last td from 2nd to last rows.
Do something here with some CSS instructions of your choice.
Beware of thead and th, they aren't expected in your example */
}
.tableClass tr + tr > td + td + td,
.tableClass tr + tr + tr > td + td {
/* selects 3rd to last td from 2nd to last rows and also
2nd to last td from 3rd to last rows.
Cancel here everything you did in previous CSS rule! */
}
td + td
选择除第一个td
之外的所有内容,td + td + td
选择除第一个和第二个td
之外的所有内容:您已完成2个CSS规则。您的示例中增加了复杂性,因为您还需要考虑行,但您只需将后一个选择器规则与tr + tr + tr
选择器结合使用。 :not(:first-child)
的绝妙技巧,值得了解;如果你的例子变得更复杂,那么你可以使用它。+
可以被~
(一般兄弟)替换,例如h3,然后是p,然后是h4,然后是p。这里没有p + p
,但仍然有p ~ p
。tbody
和table
之间是否有tr
元素,因为它不希望每个tr
都是table
的子元素1}},只是后代。