css - 当元素中还有另一个类时,SCSS 扩展类
问题描述
我在css
解决navbar
.
的navbar
定义如下:
<nav class="navbar">
<a class="navbar-phase planning active" href="#">Planning</a>
<a class="navbar-phase collection" href="#">Data Collection</a>
<a class="navbar-phase management" href="#">Data Management</a>
<a class="navbar-phase analysis" href="#">Data Analysis</a>
<a class="navbar-phase reporting" href="#">Reporting</a>
<a class="navbar-phase dissemination" href="#">Dissemination</a>
</nav>
每个元素都有自己的颜色,定义如下:
a.planning {
border-bottom: 5px solid $color__dark-green;
}
a.collection {
border-bottom: 5px solid $color__orange;
}
a.management {
border-bottom: 5px solid $color__ochre;
}
a.analysis {
border-bottom: 5px solid $color__yellow;
}
a.reporting {
border-bottom: 5px solid $color__lime;
}
a.dissemination {
border-bottom: 5px solid $color__aqua;
}
我想要做什么,但我不明白如何在 a.active 元素上设置背景颜色等于为边框底部定义的相同颜色。
有没有一种优雅的方式来做到这一点?
我想避免再写a.planning.active{background...}
解决方案
使用 SASS 的父选择器&
:
$color__red: red;
a.management {
border-bottom: 5px solid $color__red;
&.active {
color: $color__red;
}
}
编译为
a.management {
border-bottom: 5px solid red;
}
a.management.active {
color: red;
}
示例:https ://www.sassmeister.com/gist/89de3850f21109652cd175ce8085da95
https://sass-lang.com/documentation/style-rules/parent-selector
推荐阅读
- c# - C#中文件名的正则表达式
- java - 例如,Ionic 和 Android Studio 都无法下载 https://services.gradle.org/distributions/gradle-4.10.3-all.zip 并导致构建崩溃
- greasemonkey - 如何使用 Tampermonkey 脚本更改特定站点的样式?
- java - BAD : JAVA Math.sqrt(i) 趋于 0
- php - 基于PHP中的值对数组进行排序
- annotations - 如何将带注释的公理序列化为 RDF 形式?
- android - 构建 Flutter Android 应用时 AppCenter 构建崩溃
- sitecore - 单击按钮生成自定义 Sitecore 日志
- android - 通知代码添加到服务中但不起作用
- php - 如何将慢查询追溯到 WordPress/WooCommerce 中的代码