我希望只有在元素之后有其他元素才能使用元素。 到目前为止,这是我的代码:
<table id='table_1'>
<tr>
<td>A</td>
<td>B</td>
<td>C</td>
</tr>
</table>
是否有可能:在A和B之后,但不是C?
我的CSS
#table_1 td:after{
content: "";
background: black;
border: 1px solid black;
position: relative;
margin-left: 10px;
}
答案 0 :(得分:3)
最简单的方法是使用not(:last-child):
#table_1 td:not(:last-child):after{
content: "";
background: black;
border: 1px solid black;
position: relative;
margin-left: 10px;
}
<强> Working exmaple 强>
这样,您只有一个选择器,而且您不需要覆盖您的代码。
答案 1 :(得分:3)
您可以将:before
与+
一起用于较旧的浏览器支持
#table_1 td {
position: relative;
}
#table_1 td + td:before {
content: "";
position: absolute;
background: black;
border: 1px solid black;
position: relative;
margin-left: 10px;
margin-right: 10px;
}
<table id='table_1'>
<tr>
<td>A</td>
<td>B</td>
<td>C</td>
</tr>
</table>
答案 2 :(得分:2)
您可以使用td:last-child
选择任何td
元素作为其父元素的最后一个子元素,然后隐藏其:after
伪元素:
#table_1 td:last-child:after {
display:none;
}
演示:
#table_1 td:after {
content:"";
background: black;
border: 1px solid black;
position: relative;
margin-left: 10px;
}
#table_1 td:last-child:after {
display:none;
}
&#13;
<table id='table_1'>
<tr>
<td>A</td>
<td>B</td>
<td>C</td>
</tr>
</table>
&#13;