css - SCSS 在悬停时更改兄弟颜色
问题描述
我有一个菜单,我想在悬停时更改链接颜色,但也将其所有兄弟姐妹更改为另一种颜色。没有JS这可能吗?
HTML:
<ul>
<li>
<a>lorem</a>
</li>
<li>
<a>ipsum</a>
</li>
</ul>
SCSS:
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;
}
}
}
}
}
解决方案
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;
}
<ul>
<li>
<a>lorem</a>
</li>
<li>
<a>ipsum</a>
</li>
<li>
<a>sit</a>
</li>
<li>
<a>amet</a>
</li>
</ul>
推荐阅读
- python - JSON 文件:用 Python 计算全字数
- javascript - “在声明之前使用了 FormData,这对于 const 变量是非法的”是什么意思?
- android - 如何使用 Room 和 Retrofit 改进这个 RxJava 代码?
- c# - 基于角度的弹丸轨迹
- javascript - jQuery - 将所有突出显示的 tds 插入所有 trs
- angular - Angular:当我点击一个按钮两次时,我怎样才能去不同的路线?
- git - git 试图将一个旧的 master 合并到我的分支中
- performance - JDBC 批处理执行保证
- r - 使用优势比比较亚组荟萃分析的比例
- python - Jinja2 模板用新格式查找和替换字符串