如何在 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 中都没有允许您引用基于选择器的样式声明的符号,因为许多规则集可以具有相同的选择器,并且样式可以在每个元素的基础上以不同方式级联。
我有一个包含这样的复合选择器的现有规则集,
.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 中都没有允许您引用基于选择器的样式声明的符号,因为许多规则集可以具有相同的选择器,并且样式可以在每个元素的基础上以不同方式级联。