是否可以组合css3伪类:after和:lastchild?

时间:2012-03-13 16:46:12

标签: css css3 css-selectors pseudo-element

我有一个链接列表,我使用以下代码在每个链接项后面添加一个单词:

a:after {content: "eg"}

但是,我不希望内容出现在列表中的最后一项之后,所以理想情况下我想说的是

a:last-child:after {content: ""}

但这是剥离所有链接后的内容。是否还有将这两者结合起来的方法?如果有,你可以解释究竟发生了什么,我真的很感激它:)

谢谢

5 个答案:

答案 0 :(得分:6)

试试这个:

HTML:

<ul>
<li><a href="#">Check this out</a></li>
<li><a href="#">Check this out</a></li>
<li><a href="#">Check this out</a></li>
</ul>

CSS:

a:after {content: "what what"}
li:last-child > a:after {content: ""}​

这是一个Fiddle来演示。

另外,请记住,如果您有许多使用IE7和IE8的用户,:after伪类在IE7及以下版本中不起作用,并且:last-child伪类在IE8中不起作用以下。见这里:http://www.quirksmode.org/css/contents.html

答案 1 :(得分:1)

我会使用:not:last-child:after的组合来实现这一目标。使用:not(:last-child),您可以选择除最后一个链接之外的所有链接: http://jsfiddle.net/2CS9G/

a:not(:last-child):after{
    content: "--";
}

如果您的a - 代码位于列表中(ul): http://jsfiddle.net/2CS9G/2/

li:not(:last-child) a:after{
    content: "--";
}

答案 2 :(得分:1)

以下选择器组合对我有用:

#myObj ul li:last-child::after { . . . }

答案 3 :(得分:0)

它对我有用&gt; link

您可能忘记将display: block添加到a

答案 4 :(得分:0)

“Delphi”的评论有帮助吗? (https://stackoverflow.com/a/4917325/960592

  

使用带有selectivizr的nick craver解决方案允许交叉   浏览器解决方案(IE6 +)