混合器并不一定總得生成相同的樣式。可以通過在@include
混合器時給混合器傳參,來定制混合器生成的精確樣式。當(dāng)@include
混合器時,參數(shù)其實就是可以賦值給css
屬性值的變量。如果你寫過JavaScript
,這種方式跟JavaScript
的function
很像:
@mixin link-colors($normal, $hover, $visited) {
color: $normal;
&:hover { color: $hover; }
&:visited { color: $visited; }
}
當(dāng)混合器被@include
時,你可以把它當(dāng)作一個css
函數(shù)來傳參。如果你像下邊這樣寫:
a {
@include link-colors(blue, red, green);
}
//Sass最終生成的是:
a { color: blue; }
a:hover { color: red; }
a:visited { color: green; }
當(dāng)你@include混合器時,有時候可能會很難區(qū)分每個參數(shù)是什么意思,參數(shù)之間是一個什么樣的順序。為了解決這個問題,sass
允許通過語法$name: value
的形式指定每個參數(shù)的值。這種形式的傳參,參數(shù)順序就不必再在乎了,只需要保證沒有漏掉參數(shù)即可:
a {
@include link-colors(
$normal: blue,
$visited: green,
$hover: red
);
}
盡管給混合器加參數(shù)來實現(xiàn)定制很好,但是有時有些參數(shù)我們沒有定制的需要,這時候也需要賦值一個變量就變成很痛苦的事情了。所以sass
允許混合器聲明時給參數(shù)賦默認(rèn)值。
更多建議: