2017-04-17 2 views
0

私は、多くの場合、たとえば、類似あまり使用:だから私はmixinを使用したい別のパラメータを使用して少ないプロパティを変更する方法は?

.position{ 
    position:absolute; 
    right:10px; 
    top:20px; 
} 

.position(@absolute:absolute;@top:0;@right:0;@bottom:0;@left:0){ 
    position: @absolute; 
    top:@top; 
    right: @right; 
    bottom:@bottom; 
    left:@left; 
} 

しかし、時には、私はrightを必要としませんが、機能は常に私にrightを注入コード。

だから私は以下のコードを持つようにしたい場合、私は何をすべきか:

.position(@absolute:absolute;@top:12px;@left:12px;@bottom:12px); 
//without 'right' 
.position{ 
    position: absolute; 
    top:12px; 
    bottom:12px; 
    left:12px; 
} 

ありがとう!

あなたは(それが必要なパラメータはありません)このようなあなたのミックスインを書き換えることができます

答えて

1

.position(
    @position: absolute; 
    @top: false; 
    @right: false; 
    @bottom: false; 
    @left: false 
){ 
    position: @position; 

    & when not (@top = false) { 
    top: @top; 
    } 

    & when not (@right = false) { 
    right: @right; 
    } 

    & when not (@bottom = false) { 
    bottom: @bottom; 
    } 

    & when not (@left = false) { 
    left: @left; 
    } 
} 

は今、あなたはあなたが本当に必要なものだけのparamsを設定することができた:

a { 
    .position(
    @top: 20px, 
    @left: 0px 
); 
} 

b { 
    .position(
    @bottom: -50px, 
    @right: 0 
); 
} 

CSSの出力:

a { 
    position: absolute; 
    top: 20px; 
    left: 0px; 
} 
b { 
    position: absolute; 
    right: 0; 
    bottom: -50px; 
} 
+0

うわー、あなたの答えをありがとう!実際に私はあまりよく勉強していない、あなたのコードは私が試した後にうまくいく! – ssssyoki

関連する問題