SCSS 在悬停时更改同级颜色

mik*_*ike 0 css menu sass hover siblings

我有一个菜单,我想在悬停时更改链接颜色,但也将其所有同级更改为另一种颜色。没有JS这可能吗?

HTML:

<ul>
    <li>
        <a>lorem</a>
    </li>
    <li>
        <a>ipsum</a>
    </li>
</ul>
Run Code Online (Sandbox Code Playgroud)

社会保障:

ul {
    $primary-color: orange;

    > li {
        > a {
            color: #000;
            border-bottom: solid 2px transparent;

            &:hover {
                color: $primary-color;
                border-color: $primary-color;

                & + a:not(:hover) {
                    color: red;
                }
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

Tur*_*nip 5

a当一个标签被悬停时,你不能影响其他标签。您唯一真正的选择ul是在悬停时应用“其他”颜色,然后在悬停链接时覆盖“其他”颜色。

ul > li > a {
  color: #000;
  border-bottom: solid 2px transparent;
}
ul > li > a:hover {
  color: orange;
  border-color: orange;
}

ul:hover a {
  color: red;
}
Run Code Online (Sandbox Code Playgroud)
<ul>
    <li>
        <a>lorem</a>
    </li>
    <li>
        <a>ipsum</a>
    </li>
    <li>
        <a>sit</a>
    </li>
    <li>
        <a>amet</a>
    </li>
</ul>
Run Code Online (Sandbox Code Playgroud)

SCSS 版本:https ://codepen.io/3rror404/pen/OJMNyJg