CSS nth-child在长度未知时选择除最后一个元素之外的所有元素

Dan*_*ell 8 css css-selectors

更新:我发布的小提琴链接现在有工作代码.:not(:last-child):nth-last-child(n + 2)这两个很好地工作.

我试图使用nth-childnth-last-child选择器选择每li一个ul除了最后一个.问题是,列表的长度可以从1到5个元素不等.我无法找到任何文档或如何实现此目的的示例.

这是以下HTML ul:

<ul class="breadcrumbs">
    <li>
        <a href="/">Home</a>
    </li>
    <li>
        <a href="/categories/1">Articles</a>
    </li>
    <li>
        <a href="/categories/6">Specials</a>
    </li>
    <li class="current">
        <a href="/categories/6/articles/21">Song Lyrics</a>
    </li>
</ul>
Run Code Online (Sandbox Code Playgroud)

这是我目前的代码:

ul > li:nth-last-child(-1n+4) > a:hover {
  color: red;
}
Run Code Online (Sandbox Code Playgroud)

此代码仍然选择列表中的最后一个元素.我也试过下面的代码,但是没有选择任何东西.我也尝试了许多其他组合,但它们要么根本不起作用,要么选择最后一个元素.

ul > li:nth-child(1):nth-last-child(2) > a:hover {
  color: red;
}
Run Code Online (Sandbox Code Playgroud)

这是一个小提琴.

nic*_*ord 33

使用:not(:last-child)瞄准所有除了最后.

http://jsfiddle.net/96nd71e3/1/