我有以下的HTML中的嵌套链接的第一个链接:选择不包括CSS
<ul>
<li>
<a href="#">test</a>
<ul class="sub">
<li><a href="#">test 2</a></li>
</ul>
</li>
</ul>
我想影响的第一个环节,但不是第二个,我该怎么办这个只用CSS?
我有以下的HTML中的嵌套链接的第一个链接:选择不包括CSS
<ul>
<li>
<a href="#">test</a>
<ul class="sub">
<li><a href="#">test 2</a></li>
</ul>
</li>
</ul>
我想影响的第一个环节,但不是第二个,我该怎么办这个只用CSS?
可以使用:not()
伪类排除ul.sub
元素,然后选择直接<li>
和<a>
孩子如下:
在这里你去:
ul:not(.sub) > li > a {
background-color: gold;
}
或组合属性选择,如果第一个<ul>
没有class
属性:
ul:not([class]) > li > a {
background-color: gold;
}
如果有多个<li>
元素在主<ul>
,您可以使用:first-child
伪类,只选择的第一列表项:
ul:not(.sub) > li:first-child > a {
background-color: gold;
}
你可以简单地做
ul:not(.sub)>li:first-child>a{
background:red;
}
甲纯CSS解决方案将是如下
ul:not(.sub) > li:first-child > a
但:not
伪选择仅在IE9和较新的支持。
这在Chrome中不起作用,[demo](http://jsfiddle.net/warlock5658/X8f2w/)。不过这样做:'ul:not(.sub)> li:first-child> a' [modified demo](http://jsfiddle.net/warlock5658/X8f2w/1/)... – War10ck
@ War10ck,是的,谢谢,当然需要直接后代选择器。 – skip405
适合我 - 太棒了! – michaelmcgurk
,这将选择所有锚标签。 –