CSS3:Overriding之后:last-child

时间:2011-05-25 15:14:54

标签: html css css3 css-selectors

我有以下CSS来设置简单列表的样式:

ul.menu_list li {
display: inline;
}
ul.menu_list li:after {
content:" | ";
}
ul.menu_list li:last-child  {
content:"";
}

<ul class="menu_list">
  <li><a href="">Link</a></li>
  <li><a href="">Link</a></li>
  <li><a href="">Link</a></li>
</ul>

我得到了预期的效果,除了最后一个孩子没有丢失它的垂直条,“|”。

Link | Link | Link |

我尝试过组合:after:last-child&amp;反之亦然,但第一个:声明后总是优先。

4 个答案:

答案 0 :(得分:6)

执行:

ul.menu_list li:after {
    content:" | ";
}
ul.menu_list li:last-child:after  {
    content:"";
}

答案 1 :(得分:2)

请改为尝试:

ul.menu_list li:not(:last-child):after {
  content:" | ";
}

答案 2 :(得分:0)

ul.menu_list li:last-child:after应该可以解决问题。

Here is a fiddle显示了它的实际效果..

答案 3 :(得分:0)

我发现“li + li:之前”适用于IE8,Chrome,FireFox和Safari for Windows