sass - SCSS Parent Selector 不基于子级将样式应用于父级
问题描述
我正在尝试根据孩子在父母身上应用一个课程,但它似乎不起作用。
html
<ul>
<li class="nav-item">
<a class="nav-link active">Home</a>
</li>
<li class="nav-item">
<a class="nav-link">Profile</a>
</li>
</ul>
scss
.nav-item {
$root: &;
.nav-link.active {
border: solid 1px gray!important;
background-color: lightgray;
}
a {
color: black;
font-weight: bold;
}
&-.nav-link.active {
#{$root} {
border-left: solid 3px green;
}
}
}
解决方案
您不能使用 CSS 或 SASS 遍历 DOM。您应该改为将active
类放在父级上:
.nav-item.active .nav-link {
border: solid 1px gray!important;
background-color: lightgray;
}
.nav-item a {
color: black;
font-weight: bold;
}
.nav-item.active {
border-left: solid 3px green;
}
<ul>
<li class="nav-item active">
<a class="nav-link">Home</a>
</li>
<li class="nav-item">
<a class="nav-link">Profile</a>
</li>
</ul>
推荐阅读
- python - 将基于 Python 实例的程序转换为 Django 数据库
- android - React Native 0.57.1 Android 重复资源
- c# - 使用 Lync SDK 为 Skype for Business 中的所有参与者结束会议的正确方法
- python - 我使用 OpenSimplex 错了吗
- javascript - 如何显示多个答案(javascript)
- ios - AppStore Connect 如何在提交后验证二进制文件?
- sockets - TCP套接字:在调用accept之前缓冲了多少传入数据?
- javascript - 带有频繁更新数据库的 Redux
- c# - c#如何将文件保存在受用户名和密码保护的文件夹中
- java - 当 AccountNo 大于 15 位或 X 位时删除尾随零