CSS3不带最后一个子项的选择器

CSS3不带最后一个子项的选择器,css,css-selectors,Css,Css Selectors,我有下面的css,它需要修改最后一个没有类“myClass”的子级,但我似乎无法让它工作 知道我哪里出错了吗 ul li:not(.myClass):last-child a { font-style:italic; } 请求的html示例: <ul> <li><a href="#">one</a></li> <li><a href="#">two</a></li>

我有下面的css,它需要修改最后一个没有类“myClass”的子级,但我似乎无法让它工作

知道我哪里出错了吗

ul li:not(.myClass):last-child a {
    font-style:italic;
}
请求的html示例:

<ul>
    <li><a href="#">one</a></li>
    <li><a href="#">two</a></li>
    <li><a href="#">three</a></li>
    <li class="myClass"><a href="#">Extra</a></li>
</ul>

我想将css应用于li three…

如果只想将css应用于li three,请尝试:第n个孩子(3)

这个伪类根据元素的位置匹配元素 在父元素的子元素列表中。 –


如果确定要定位的元素是除1之外的最后一个元素,则可以使用
n最后一个子元素(2)


试着这样做:

ul li:not(.myClass):nth-last-of-type(2) a {
    border-right:0px solid #000;
}

当前的CSS语法无法帮助
操作符执行这种样式。您需要的是框架

这将允许您执行以下操作:

ul > li:not(.myClass) {
  li:last-child {
    //style here
    }
}

只有在能够使用jQuery的情况下,css才能做到这一点。您可能会发现这个解决方案很有用


也许可以给出一个html代码的简短示例,以匹配您想要的结果。您是否尝试以其他方式添加伪类
ul li:last child:not(.myClass)a
?@Mat尝试了。。。尽管如此,仍然没有快乐-is似乎正在研究一个理论,即最后一个孩子和非(.myClass)都必须是真实的。噢,我的坏。。。我现在要编辑。无法选择具有特定类的元素之前的元素。你需要重新思考你正在尝试做什么。当然这会起作用,但问题是每个页面上的列表项的数量不一样,并且为每个页面编写新的css真的不必要-加上“.myClass”元素不会出现在每个页面上。我不能总是肯定它会是最后一个,但只有一个。。。有时“.myClass”不存在。。。否则这将是完美的!我们试图尽可能避免jquery,但我认为在这种情况下,这将是最好的方法。
ul li:not(.myClass):nth-last-of-type(2) a {
    border-right:0px solid #000;
}
ul > li:not(.myClass) {
  li:last-child {
    //style here
    }
}
$('ul li').not('.myClass').last().find('a').addClass('mystyle');​