【问题标题】:Less syntax problems [duplicate]更少的语法问题[重复]
【发布时间】:2017-09-06 17:39:02
【问题描述】:

我无法理解某些语法用法。我有一个带有默认参数的简单混合:

 @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);
}

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

【问题讨论】:

  • 是的,看起来他们是一样的:(

标签: html css less preprocessor


【解决方案1】:

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

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

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

【讨论】:

  • 谢谢,但是当我尝试用 grunt 编译时出现错误:SyntaxError: wrong number of arguments for .monster-happy (2 for 3)
  • 抱歉,我不知道为什么会这样,据我所知,它应该是这样工作的。
猜你喜欢
  • 2011-06-04
  • 2013-05-31
  • 1970-01-01
  • 1970-01-01
  • 2023-03-14
  • 2011-07-11
  • 2011-07-19
  • 2011-07-29
相关资源
最近更新 更多