2016-09-13 1 views
0

によって上書きされてしまう私は、次のような構造を持っている:私は私が手a.cssするa.lessをコンパイルすると少ない変数は次のファイル

@import (reference) "bootstrap/variables"; 
@grid-columns: 10; 

.someClass{  
    .make-sm-column(5); 
} 

app.less 
     @import a.less 
     @import b.less 

a.lessは、次のようになります。

.aClass{ 
    ... 
    width: 50%; 
} 

b.lessは、次のようになります。

@import (reference) "bootstrap/variables"; 
@grid-columns: 100; 

のでapp.lessがapp.cssするようにコンパイルされたとき、私は

.aClass{ 
    ... 
    width: 5%; 
} 

を得ることがb.lessによって上書きされてしまう@グリッド・カラムのように思えます。どのように私はこの動作を防ぐことができますか?

更新:@ grid-columns:10をクラス内に入れても、まだ動作しません。変数がセレクタのスコープではないようです。

+0

名前を変更しますか? –

+0

同じ変数名を使用しないでください –

+0

おそらく必要なものは次のようなものです:http://stackoverflow.com/questions/30414276。 "変数のようにセレクタの範囲ではないようです。" - 実際には '.make-sm-column'はグローバルな混合であるので、まずグローバル' @ grid-columns'を探すはずです(したがって、クラススコープの変数は効果がありません) - トリックの方法を見つけるためのリンクを見てくださいそれ。 –

答えて

1

変数を2回定義する場合、変数の最後の定義が使用され、現在のスコープから上方向に検索されます。これは、定義内の最後のプロパティを使用して値を決定するcss自体に似ています。 http://lesscss.org/features/#variables-feature

同じ変数名には同じスコープが使用され、2番目の変数のみが使用されます。異なる変数名を使用してみてください:

@grid-columns-100: 100; 
@grid-columns-10: 10; 
+0

この場合、私はこの変数grid-columnsが使われている場所で、mixin(例えば、bootstrap.lessのmake-xs-column)を使うことができますか?どのようにして、このミックスインを異なるファイルのgrid-columns変数を使って使うことができますか? – Julian

+0

少なくともSASSでは、mixinにパラメータを渡すことができます(私はLessを使用していません)。 –

+0

はい、できますが、私はどのようにbootstrap mixinによって提供されたものを使うことができるのか不思議でした。 http://willschenk.com/bootstrap-advanced-grid-tricks/という記事では、変数grid-columnsはセレクタにスコープされていますが、そのようには動作しないようです。 – Julian

関連する問題