我试图在编译之前覆盖一些bootstrap LESS变量。
// Core variables
@import "variables.less";
// Trying to override @white from variables.less
@white: #de1de1;
// other bootstrap @imports....
上面的代码不会覆盖@white
,但如果我在variables.less文件的末尾添加@white
,它就可以正常工作。
看起来变量只能在同一个文件中覆盖。但这对我来说没有意义,因为我认为LESS没有这样的工作。例如,其他@import
文件(上面的代码中省略)使用@white
变量。如果他们能够在variables.less文件之外使用它,为什么我不能在文件外覆盖它?
我正在使用Less Php 0.3.9编译我的代码。
注意: 我刚试过以下代码:
// Core variables
@import "variables.less";
@import "variables-custom.less";
现在@white
的值取自variables-custom.less(这有点解决了我的问题)。它仍然无法解释为什么我的原始代码不起作用。希望得到答案。
答案 0 :(得分:3)
变量将按照导入设置为编译的顺序被覆盖(并且可用)。
例如:
@import "variables.less"; //@white is set
@import "styles.less"; //UPDATED @white NOT available
@import "variables-custom.less"; //Update @white
@import "styles2.less"; //UPDATED @white available
所以,只要确保如果你不打算使用variables.less而不是变量custom.less,你就把它放在所有其他.less文件之前(当然除了variables.less)。