css - 在 li 之后添加 >>,最后 li 除外

标签 css sass css-selectors bourbon neat

我正在开发这样的面包屑:

<div class="breadcrumb">
  <ul>
    <li><a href="behandelingen.html">Behandelingen</a></li>
    <li><a href="behandelingen-cat.html">Gelaatsverzorgingen</a></li>
    <li class="active">Environ Discovery</li>
 </div>

我正在使用 Sass 为面包屑设置样式:

.breadcrumb {
  @include outer-container;
  @include shift(4);
  margin-top: em(50);
  padding-left: em(14);
  li {
    float: left;
    margin-right: 15px;
  }
}

为了在每个列表项之后添加一个“>>”,我在我的 li 定义中添加了这个:

&:after{
  content: ">>";
  margin-left: 10px;
}

这工作正常,但现在我想添加一个规则,定义不向最后一个列表项添加“>>”。我试过这个:

&:after:not(li:last) {
  content: ">>";
  margin-left: 10px;
}

但这会使所有“>>”消失。

谁能告诉我如何在除最后一项之外的每个列表项之后添加“>>”?

最佳答案

你想要 :not(:last-child) 代替:

&:not(:last-child):after {
  content: ">>";
  margin-left: 10px;
}

:last 不是有效的 CSS 选择器,:not() 中不能有多个简单选择器。 li 部分可以省略,因为您的嵌套选择器已经使用了 li

:after作为伪元素,也需要放在:not()之后才有效。

关于css - 在 li 之后添加 >>,最后 li 除外,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22729825/

相关文章:

html - 在 CSS 中选择内部 HTML 元素

css - 我的 css 文件不是从我的 scss 文件自动编译的

css - 如何使用 CSS 选择器选择除 first 和 last 之外的所有子项

css - CSS3 中的 : body[data-page~ ='hello' ], 是什么意思?

CSS Masking (Webkit) - 一个人如何编码这个圈子?

javascript - 使用秒而不是百分比来表达 CSS3 @keyframes

command-line - Sass --watch 指定 unix_newlines

r - nav-link-color(和其他)在 bslib 中不起作用

html - CSS sibling ,首先

jquery - 在不扭曲形状/阴影的情况下向图形添加文本。 CSS