选择CSS之外的第一个链接,不包括嵌套链接

时间:2014-03-03 14:46:45

标签: html css css-selectors

我有以下HTML:

<ul>
  <li>
    <a href="#">test</a>
    <ul class="sub">
      <li><a href="#">test 2</a></li>
    </ul>
  </li>
</ul>

我想影响第一个链接但不影响第二个链接,我如何仅使用CSS?

4 个答案:

答案 0 :(得分:6)

您可以使用:not()伪类排除ul.sub元素,然后选择直接<li><a>子元素,如下所示:

你走了:

ul:not(.sub) > li > a {
    background-color: gold;
}

<强> WORKING DEMO

或者组合属性选择器,如果第一个<ul>没有class属性:

ul:not([class]) > li > a {
    background-color: gold;
}

如果主<li>中有多个<ul>元素,您可以使用:first-child伪类来选择 first < / strong>列表项目:

ul:not(.sub) > li:first-child > a {
    background-color: gold;
}

<强> UPDATED DEMO

答案 1 :(得分:1)

你可以简单地做

ul:not(.sub)>li:first-child>a{
    background:red;
}

答案 2 :(得分:1)

纯css解决方案如下

ul:not(.sub) > li:first-child > a

:not伪选择器仅在IE9及更新版本中受支持。

答案 3 :(得分:0)

http://jsfiddle.net/4aA7c/

CSS:

ul:not(.sub) > li:first-child > a {
    background-color: gold;
}