2012-02-15 133 views
2

我使用一个混合的字体是这样的:默认值的参数

#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); 

(其实际工作,但我怀疑错误的原因 - 或者无论如何,它似乎不正确的语法) 达到此目的的最佳方法是什么?

+1

参见[命名参数(http://lesscss.org/features/#mixins-parametric-feature-named-parameters),例如'.trebuchet(@style:italic);'。 – 2015-04-14 07:39:47

回答

3

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

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