如何使用LESS中现有规则集的声明?

时间:2015-03-31 02:31:59

标签: css css-selectors less

我有一个现有的规则集,带有这样的复合选择器,

.class1 + .class2 { /* declaration block */ }

我想使用此规则集prop1: value1

中的特定声明

在我的LESS中有没有办法获得(.class1+.class2).prop1的效果?

我不想在新类中复制prop1,而是使用.class1 + .class2

中的声明

我尝试了以下但没有成功,

(.class1+.class2).prop1
.class1+.class2.prop1

1 个答案:

答案 0 :(得分:2)

我不认为你可以做到这一点,除非将该声明移到自己的mixin中,然后在.class1 + class2和你要引用此声明的任何其他地方引用所述mixin:

.prop1() {
    prop1: value1;
}

.class1 + .class2 {
    .prop1;
}

.class3 {
    .prop1;
}

旁注:在标准选择器语法中,"复合选择器"特指一系列简单的选择器 - 你所拥有的是一个复杂的选择器,由两个复合选择器.class1.class2组成,由+组合子分隔。只是一个小小的挑剔,但将有助于理解将在未来标准中引入的更复杂的选择器。标准CSS或LESS中没有任何表示法允许您引用基于选择器的样式声明,因为许多规则集可以具有相同的选择器,并且样式可以在每个元素的基础上进行不同级联。