Html 更少的语法问题

Html 更少的语法问题,html,css,less,preprocessor,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 { .pai

我不懂一些语法用法。我有一个带有默认参数的简单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);
}

但它不起作用。我应该如何使其正确,以及有什么更好的方法来做到这一点?

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

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

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

是的,看起来它们是一样的:(谢谢,但当我试图用grunt编译它时,我遇到了一个错误:SyntaxError:的参数数目错误。monster happy(2对3)抱歉,我不知道为什么会发生这种情况,据我所知,它应该是这样工作的。