如果我有以下html
<ul id="some_list">
<li class="hide">Do Not Target This</li>
<li class="hide">Do Not Target This</li>
<li>Target This</li>
<li>Do Not Target This</li>
</ul>
如何定位没有隐藏类的第一个孩子?例如
#some_list>li:not(.hide):first-child {
color: #777;
}
但这不起作用。
答案 0 :(得分:5)
您可以使用CSS adjacent sibling selector来选择没有li
类的第一个.hide
元素:
<强> EXAMPLE HERE 强>
li:first-child:not(.hide),
li.hide + li:not(.hide) {
background-color: gold;
}
还要考虑检查第一个列表项(第一个子项)是否存在.hide
类名。
答案 1 :(得分:1)
我认为这就是你想要的
#some_list>li.hide + li:not(.hide){
color: #CCC;
}
答案 2 :(得分:0)
使用javascript你可以做到这一点
http://jsfiddle.net/h_awk/5G5ED/4/
<script>
var parent = document.getElementById('some_list'),
child = parent.getElementsByTagName('li');
child[2].style.color = 'blue';
</script>