各種新的CSS3屬性接受無限多組值,即box-shadow
和背景漸變。有沒有辦法獲得傳遞給Sass mixin的參數數組?
以box-shadow
爲例,理想的情況是應該能夠做到:
@include box-shadow(10px 15px 10px #FF0000, 15px 10px 10px #0000FF);
的許多參數,只要你喜歡。問題在於Sass需要一個明確的參數數量,即使它沒有,我也知道無法循環使用它們。
我能想到的迄今最好的混入會像這樣:
@mixin box-shadow($v1: 0 0 10px #CCC, $v2: "", $v3: "", $v4: "", $v5: "") {
@if $v5 != "" {
-webkit-box-shadow: $v1, $v2, $v3, $v4, $v5;
-moz-box-shadow: $v1, $v2, $v3, $v4, $v5;
-o-box-shadow: $v1, $v2, $v3, $v4, $v5;
box-shadow: $v1, $v2, $v3, $v4, $v5;
} @else if $v4 != "" {
...
} @else {
-webkit-box-shadow: $v1;
-moz-box-shadow: $v1;
-o-box-shadow: $v1;
box-shadow: $v1;
}
}
我想寫一組薩斯廠商餐飲CSS3混入的。 (可在:https://github.com/stevelacey/sass-css3-mixins)。
顯然,這是垃圾,冗長,限於5種風格,有沒有更好的方法?
編輯:
@Riklomas指出我這個:https://gist.github.com/601806這至少比我的代碼少重複,還在尋找一個妥善的解決辦法。
簡單:獨自離開SASS,並開始使用LESSphp :)。 – mingos 2011-02-15 17:34:36