2013-03-13 4 views
9

コンパイルする前にいくつかのブートストラップのLESS変数をオーバーライドしようとしています。@importの後にブートストラップのLESS変数を無効にする

// Core variables 
@import "variables.less"; 

// Trying to override @white from variables.less 
@white: #de1de1; 

// other bootstrap @imports.... 

上記のコードは@whiteを上書きすることはありませんが、私はvariables.lessファイルの末尾に@whiteを追加する場合、それが正常に動作します。

変数は同じファイルでのみ上書きできるように見えます。しかし、これは私には意味がありません。例えば、他の@importファイル(上記のコードからは省略されている)は、@white変数を使用します。 variables.lessファイルの外でそれを使用できるのであれば、それをファイル外でオーバーライドできないのはなぜですか?

私はコードをコンパイルするのにLess Php 0.3.9を使用しています。

注:今@whiteの値が(多少私の問題を解決します)変数-custom.lessから取られ

// Core variables 
@import "variables.less"; 
@import "variables-custom.less"; 

: は、私は次のコードを試してみました。それでも私の元のコードはなぜ機能しないのか説明していません。それに答えていただければ幸いです。

+2

これについては、http://stackoverflow.com/questions/15426256/overridelessVariablesで良い答えがあります。 – ScottS

答えて

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のすべての前にそれを置くことを確認してくださいファイル(もちろん変数はありません)。

関連する問題