Ini*_*Art 4 if-statement less pattern-guards
我想知道是否有更好的解决方案(或者如果我的解决方案是正确的),创建if变量和守卫的行为.
目标:
.responsive (@responsive);被合并)我的代码:
@responsive: true;
.responsive(true){
a {
color: red;
}
}
.responsive(true) {
b {
color: blue;
}
}
.responsive (@responsive);
Run Code Online (Sandbox Code Playgroud)
我不完全确定我明白你所说的不起作用.
但是,如果我这样做......有两件事与此有关,你必须在LESS中留意:
这就是说 - 如果你真的想在多个地方使用相同的守卫来做不同的事情,你需要定义多个mixin(每个地方会得到另一个mixin),如果你想在你定义它的地方渲染它,您只需要在定义之后(或之前)立即调用它.像这样的东西:
@responsive: true;
test1 {
color:green;
}
.a() when (@responsive){
a {
color: red;
}
}
.a;
test2 {
color:green;
}
.b() when (@responsive) {
b {
color: blue;
}
}
.b;
Run Code Online (Sandbox Code Playgroud)
输出将是:
test1 {
color: green;
}
a {
color: red;
}
test2 {
color: green;
}
b {
color: blue;
}
Run Code Online (Sandbox Code Playgroud)
所以混入.a()和.b()是否返回@responsive设置为true,如果不是你得到:
test1 {
color: green;
}
test2 {
color: green;
}
Run Code Online (Sandbox Code Playgroud)
我希望这有点像你想要的.