CSS Previous sibling selectors and how to fake them
Example HTML structure
<nav class="nav">
<ul class="nav__items">
<li class="nav__item">
<a href="/">Home</a>
</li>
<li class="nav__item">
<a href="/about">About</a>
</li>
<li class="nav__item">
<a href="/work">Work</a>
</li>
<li class="nav__item">
<a href="/contact-us">Contact us</a>
</li>
</ul>
</nav>
Example SCSS structure
.nav__items {
// The faking magic - the hover effect will now only take place when hovering on a child element.
pointer-events: none;
&:hover {
> .nav__item a {
opacity: 0.4;
}
> .nav__item:hover a {
opacity: 1;
}
}
}
.nav__item {
// The faking magic.
pointer-events: auto;
}