减少语法问题

时间:2017-09-06 09:24:42

标签: html css less preprocessor

我无法理解一些语法用法。我有一个简单的mixin和默认参数:

 @red: #ff4136;
 @blue: #00aef9;
 @green: #01ff70;
 @yellow: #ffdc00;

.paint(@color: @yellow, @height:100px, @width:200px) {
background-color: @color;
height: @height;
width: @width;
}

    .monster-happy {
        .paint(@color, 100px, 10px);
    }

我想只更改第一个和最后一个默认参数,我不想更改中间参数,例如:

.monster-happy {
    .paint(@red, @height, 10px);
}

但它不起作用。我应该如何纠正它以及有什么更好的方法呢?

1 个答案:

答案 0 :(得分:1)

我相信你可以忽略你想要使用默认值的值,然后在参数的下面显式定义任何参数。

.monster-happy {
    .paint(@red, @width: 10px);
}

这是因为你的mixin会检查传入的值,以便你传递它们。它总是首先要求颜色,这就是我们可以使用@red的原因,但由于省略了高度,我们必须明确声明下一个值是@width属性。