我有一个LESS混入。 当某个体类是本欲改变混入的一个值。
.my-style() {
font-weight: bold;
color: red;
}
.my-style-altered() {
color: blue;
}
.element {
.my-style;
}
.body-class .element {
.my-style-altered;
}
这是工作的罚款。 但是我选择的名单越来越长:
.my-style() {
font-weight: bold;
color: red;
}
.my-style-altered() {
color: blue;
}
.element,
.element-2,
.element-3 {
.my-style;
}
.body-class .element,
.body-class .element-2,
.body-class .element-3 {
.my-style-altered;
}
有没有写我的选择的列表,所以我不必赘述两次的更聪明的方式? 理想我想他们写一次,并为所有的人我的风格改变的()亦将如果。体类是目前应用。
方法1:(使用不同的混入用于基本版本和主体级特定版本)
是的,你能避免通过嵌套多次写所有的选择.body-class *
通用的一个内选择的变型和附加父选择像下面的代码片段。 当该代码被编译,较少编译器会自动替换&
与父选择器中的每一个。
.my-style() {
font-weight: bold;
color: red;
}
.my-style-altered() {
color: blue;
}
.element, .element-2, .element-3 {
.my-style;
.body-class &{
.my-style-altered;
}
}
编译CSS:
.element, .element-2, .element-3 {
font-weight: bold;
color: red;
}
.body-class .element,
.body-class .element-2,
.body-class .element-3 {
color: blue;
}
方法2:(使用相同混入用于基本版本和主体级特定版本)
或者,如果你想避免使用两个不同的混入和同时输出的内容(默认的和.body-class *
通过相同的混入变体),这是可以做到象下面这样:
.mixin() {
font-weight: bold;
color: red;
.body-class &{
color: blue;
}
}
.element, .element-2 {
.mixin()
}