默认值的参数
问题描述:
我使用一个混合的字体是这样的:默认值的参数
#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;
}
}
我想打电话给这个不断变化的只是最后一个参数,风格,但保留其他值为默认值。例如,而不是书写:
#font > .trebuchet(normal, 12px, 20px, italic);
我会写这样的:
#font > .trebuchet(false, false, false, italic);
(其实际工作,但我怀疑错误的原因 - 或者无论如何,它似乎不正确的语法) 达到此目的的最佳方法是什么?
答
您可以使用模式匹配。你应该克隆您.trebuchet类是这样的:
.trebuchet when (@weight=false) and (not(ispixel(@size)) and (not(ispixel(@lineHeight)) {
font-style: @style;
}
参见[命名参数(http://lesscss.org/features/#mixins-parametric-feature-named-parameters),例如'.trebuchet(@style:italic);'。 – 2015-04-14 07:39:47