传递空LESS参数以使用默认值?

时间:2012-04-10 13:49:07

标签: css css3 less

如果我有一个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.4s,我似乎也必须为第一项传递一个参数:

.trans(all, 0.4s);

是否存在仅传递null参数的语法,因此只使用默认值(“all”)?这不起作用,在编译时抛出错误:

.trans(,0.4s);

感谢。

2 个答案:

答案 0 :(得分:11)

可能为时已晚,但回应可能对其他人有用。

您还可以在调用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; 
}

您可以执行.trans(@time:1s);.trans(@type:linear, @what: opacity);

之类的操作 希望它有所帮助。

答案 1 :(得分: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; 
} 

除了现有的,只是为了允许更短的语法。