2014-01-19 65 views
2

考慮以下兩個混入:傳遞一個「空」的說法到上海社會科學院混入,這樣的默認參數被使用

@mixin padding($v: 8px) 
    padding: $v - 3 $v $v - 3 $v 

@mixin button($padding: "") 
    @include padding($padding) 
    @include border-radius 
    border: 1px solid black 

我可以叫@include padding不帶參數,默認8px被使用,沒有問題。但是,我怎樣才能調用button mixin,並仍然在padding mixin中使用默認值?如果我只是簡單地打電話@include button而沒有任何爭論,那麼button mixin似乎仍然將某種參數傳遞給paddingpadding不可避免地解釋爲0,因此不會添加任何填充)。基於Making a Sass mixin with optional arguments,我試圖修改button混入有

@include padding(unquote($padding))

但都沒有效果 - padding似乎仍然解釋參數爲0,而不是那裏是沒有論據,從而使用其默認值。

回答

4

此問題通常通過將兩個mixin的默認參數設置爲相同的值來解決。您可能想要爲此使用全局變量:

$default-padding: 8px 

@mixin padding($v: $default-padding) 
    padding: $v - 3 $v $v - 3 $v 

@mixin button($padding: $default-padding) 
    @include padding($padding) 
    @include border-radius 
    border: 1px solid black 
+0

是的,這是我正在使用的解決方案。 – maxedison

相關問題