所以我试图基于从无PHP编译器传入的变量来覆盖一些“全局”变量。
我不确定我做错了什么,或者由于范围而无法做到这一点?
编辑:在这种情况下,我正试图让身体的背景变红。
external.less
// From external less stylesheet that I can't/don't want to modify
@myColour: blue;
body {
background: @myColour; // always blue
}
my.less
@import "external.less"
// My styles
.setResponsive(@responsive) when (@responsive = on) {
@myColour: green;
}
.setResponsive(@responsive) when (@responsive = off) {
@myColour: red;
}
@responsiveState: off; // actually being set from compiler
.setResponsive(@responsiveState);
div {
.setResponsive(@responsiveState);
background: @myColour; // red
}
答案 0 :(得分:0)
您正在使用Mixins as Functions:
无法覆盖直接在调用者范围内定义的变量。
在您的情况下,@myColour: blue;
和.setResponsive(@responsiveState);
都在同一范围内(主要范围)。所以你所尝试的是不可能的。
您应该在代码末尾重新声明所有变量(使用您用来设置@responsiveState的相同机制)