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

How can I use a declaration from an existing rule set in LESS?

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

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

我想使用此规则集中的特定声明 prop1: value1

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

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

中的声明

我试过以下方法都没有成功,

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

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

.prop1() {
    prop1: value1;
}

.class1 + .class2 {
    .prop1;
}

.class3 {
    .prop1;
}

旁注:在标准选择器语法中,"compound selector" 特指一系列简单选择器——您拥有的是由两个复合选择器组成的复杂选择器,.class1.class2,由 + 组合子分隔。只是一个小问题,但对于理解将在未来标准中引入的更复杂的选择器大有帮助。标准 CSS 或 LESS 中都没有允许您引用基于选择器的样式声明的符号,因为许多规则集可以具有相同的选择器,并且样式可以在每个元素的基础上以不同方式级联。