4

我有以下 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应用到李三...

4

5 回答 5

2

仅当您能够使用 jQuery 时才能使用 css 完成此操作,您可能会发现此解决方案很有帮助。

http://jsfiddle.net/6ku3Y/

$('ul li').not('.myClass').last().find('a').addClass('mystyle');​
于 2012-09-19T09:39:22.233 回答
1

如果您确定要定位的元素是最后一个,则可以使用nth-last-child(2)

ul li:nth-last-child(2) a {
    border-right:0px solid #000;
}
于 2012-09-19T09:20:34.940 回答
0

如果您只想将 css 应用于 li 三个,请尝试 :nth-child(3)

ul li:nth-child(3) a​ {
    border-right:0
}​

http://jsfiddle.net/hhncn/

这个伪类根据元素在父元素的子元素列表中的位置来匹配元素。– http://reference.sitepoint.com/css/pseudoclass-nthchild

于 2012-09-19T09:16:07.433 回答
0

当前的 CSS 语法无法帮助AND操作员执行这种样式。你需要的是CSS LESS框架。

这将允许您这样做:

ul > li:not(.myClass) {
  li:last-child {
    //style here
    }
}
于 2012-09-19T09:33:57.980 回答
0

尝试这样的事情:

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

看演示

于 2012-09-19T09:23:20.910 回答