mixins参数的默认值

时间:2012-02-15 12:51:22

标签: less less-mixins

我正在使用mixin这样的字体:

#font {
  .trebuchet(@weight: normal, @size: 12px, @lineHeight: 20px, @style:normal) {
    font-family: "Trebuchet MS", arial, verdana, sans-serif;
    font-size: @size;
    font-weight: @weight;
    line-height: @lineHeight;
    font-style: @style;
  }  
}

我想调用它只更改最后一个参数style,但将其他值保留为默认值。例如,而不是写:

#font > .trebuchet(normal, 12px, 20px, italic);

我会写一些类似的东西:

#font > .trebuchet(false, false, false, italic);

(这实际上有效,但我怀疑是因为错误的原因 - 或者说它似乎没有正确的语法) 实现这一目标的最佳方法是什么?

1 个答案:

答案 0 :(得分:3)

您可以使用模式匹配。你应该像这样克隆你的.trebuchet类:

.trebuchet when (@weight=false) and (not(ispixel(@size)) and (not(ispixel(@lineHeight)) {
    font-style: @style;
}