5-3. 給混合器傳參

2018-08-11 21:09 更新

混合器并不一定總得生成相同的樣式??梢酝ㄟ^在@include混合器時給混合器傳參,來定制混合器生成的精確樣式。當(dāng)@include混合器時,參數(shù)其實就是可以賦值給css屬性值的變量。如果你寫過JavaScript,這種方式跟JavaScriptfunction很像:

@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ù)賦默認值。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號