我有一个现有的规则集,带有这样的复合选择器,
.class1 + .class2 { /* declaration block */ }
我想使用此规则集prop1: value1
在我的LESS中有没有办法获得(.class1+.class2).prop1
的效果?
我不想在新类中复制prop1,而是使用.class1 + .class2
我尝试了以下但没有成功,
(.class1+.class2).prop1
.class1+.class2.prop1
答案 0 :(得分:2)
我不认为你可以做到这一点,除非将该声明移到自己的mixin中,然后在.class1 + class2
和你要引用此声明的任何其他地方引用所述mixin:
.prop1() {
prop1: value1;
}
.class1 + .class2 {
.prop1;
}
.class3 {
.prop1;
}
旁注:在标准选择器语法中,"复合选择器"特指一系列简单的选择器 - 你所拥有的是一个复杂的选择器,由两个复合选择器.class1
和.class2
组成,由+
组合子分隔。只是一个小小的挑剔,但将有助于理解将在未来标准中引入的更复杂的选择器。标准CSS或LESS中没有任何表示法允许您引用基于选择器的样式声明,因为许多规则集可以具有相同的选择器,并且样式可以在每个元素的基础上进行不同级联。