さまざまな新しいCSS3プロパティは、無限の値のセット、つまりbox-shadow
背景のグラデーションを受け入れます。
例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;
}
}
私はSassベンダーケータリングCSS3ミックスインのセットを書き込もうとしています。(https://github.com/stevelacey/sass-css3-mixinsで入手できます)。
明らかに、これはゴミで、長く、5つのスタイルに制限されていますが、より良い方法はありますか?
編集:
@Riklomasは私にこれを指摘しました:https ://gist.github.com/601806これは少なくとも私のコードよりも反復性が少なく、適切な解決策を探しています。