Question

I'm developing a breadcrumb like this:

<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>

I'm styling the breadcrumb using Sass:

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

to add a ">>" after every list item, I added this inside my li definition:

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

this works fine, but now I want to add a rule that defines not to add a ">>" to the last list item. I tried this:

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

but that makes all ">>" disappear.

Can someone tell me how I can add a ">>" after every list item, except for the last one ?

Was it helpful?

Solution

You want :not(:last-child) instead:

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

:last is not a valid CSS selector, and you cannot have more than one simple selector within :not(). The li portion can be omitted since your nested selector already uses li.

:after, being a pseudo-element, also needs to be placed after :not() for it to be valid.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top