如果我有一个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);
感谢。
答案 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;
}
除了现有的,只是为了允许更短的语法。