<div class="grandParent active"> /*active class added dynamically*/
<div class="parent1">
<div class="childOfParent1"> Some Text </div>
</div>
<div class="parent2">
<div class="childOfParent2"> Some Text </div>
</div>
</div>
使用Less我如何根据grandParent类
应用子文本颜色.grandParent {
.parent1 {
.childOfParent1 {
color : red;
.grandParent:not(active) .parent1 .childOfParent1 {
color : green;
}
}
}
}
以上代码可以使用以下代码,但我不想重复代码
.grandParent {
.parent1 {
.childOfParent1 {
color : red;
}
}
&:not(active) .parent1 .childOfParent1 {
color : green;
}
}
答案 0 :(得分:2)
我认为最易维护的代码就是这样:
.parent {
.child {
color: green;
.grandParent.active & {color: red}
}
}
或者更少DRY(如果你真的想要使用:not
):
.parent {
.child {
.grandParent & {color: red}
.grandParent:not(.active) & {color: green}
}
}
有关此类&
用法的详细信息,请参阅Changing selector order。
根据以下评论,这是另一个变体:
.grandParent {
.parent {
.child {
color: green;
.active& {color: red}
}
}
}
[好吧,稍微偏离主题] 虽然如果真的需要让它可维护,那么还有一些评论:
.grandParent
或.parent
实际上是多余的。)