3

次のような LESS パラメトリック mixin があるとします。

.trans (@what: all, @time: 0.2s, @type: ease-in-out) {
-webkit-transition: @arguments;
-moz-transition: @arguments;
-o-transition: @arguments;
-ms-transition: @arguments;
transition: @arguments; 
} 

期待どおりに動作します:

.myItem {
  .trans;
 }

しかし、@time を 0.4 秒に設定したい場合は、最初の項目にも引数を渡す必要があるようです。

.trans(all, 0.4s);

null引数を渡すだけの構文はありますか?デフォルト(「すべて」)が単に使用されますか? これは機能せず、コンパイル時にエラーがスローされます。

.trans(,0.4s);

ありがとう。

4

2 に答える 2

11

おそらく遅すぎますが、応答は他の人にとって役立つ可能性があります.

順序に従わなくても、ミックスインを呼び出すときに変数に名前を付けることもできます。

あなたのケースを考慮して:

 .trans (@what: all, @time: 0.2s, @type: ease-in-out) {  
   -webkit-transition: @arguments;  
   -moz-transition: @arguments;  
   -o-transition: @arguments;  
   -ms-transition: @arguments;  
   transition: @arguments; 
}

あなたは次のようなことをすることができ.trans(@time:1s);ます.trans(@type:linear, @what: opacity);

それが役に立てば幸い。

于 2012-11-16T00:32:43.863 に答える
0

あなたが考えているように、言語はそれをサポートしていないかもしれませんが、LESS にはオーバーロードがあるため、ユースケースによっては、次のような方法で回避できます。

.trans (@time) {
    -webkit-transition: all @time ease-in-out;
    -moz-transition: all @time ease-in-out;
    -o-transition: all @time ease-in-out;
    -ms-transition: all @time ease-in-out;
    transition: all @time ease-in-out; 
} 

既存のものに加えて、その短い構文を許可するだけです。

于 2012-04-11T04:46:01.240 に答える