问题描述
我试图基于BEM修饰符引用基类以更改子类。
这在SASS中效果很好,但是我现在正在使用LESS。
这里有SASS参考... https://css-tricks.com/the-sass-ampersand/
这是无效的代码...
.s-body {
@self: &;
...
&__door {
...
&--state-past {
#{@self}__image {
...
}
}
}
&__image {
...
}
}
解决方法
在 LESS 中不可能使用与符号 (&) 将当前类分配给变量。但是您可以将类名设置为这样的变量:
.s-body {
@self: .s-body;
}
之后,您可以将变量用作选择器,如下所示:@{self}
。如需进一步说明,请查看 LESS 文档:http://lesscss.org/features/#variables-feature-variable-interpolation
在您的示例中,这将产生以下代码:
.s-body {
@self: .s-body;
&__door {
&--state-past {
@{self}__image {
}
}
}
&__image {
}
}