私はグラデーションの背景を設定する(後方互換性はありますが、そうではない)Sassミックスインがあります。さて、私は、複数のグラデーションを適用したい要素があります。コンマで区切ったリストでバックグラウンドプロパティを設定することでこれを直接行うことができますが、複数のグラデーションを適用してプロパティを共通の区切りリストとして出力するには、グラデーションmixinの複数のアプリケーションを使用できます。スタイルを組み合わせたSass/scss複数のミックスイン
私がやりたいものの例:(基本的に)この
div.needs-two-backgrounds {
background-image: linear-gradient(90deg, $color-one 0, $color-two 100%),
linear-gradient(180deg, $color-three 0, $color-four 20%, $color-five 100%);
}
を発するだろう
div.needs-two-backgrounds {
@include gradient-mixin(90deg, $color-one 0, $color-two 100%);
@include gradient-mixin(180deg, $color-three 0, $color-four 20%, $color-five 100%);
}
はサスに組み込まれ、これを行うにはいくつかの方法があります、またはそれは希望別のライブラリが必要ですか、それともその言語では不可能なのでしょうか?
編集: 回答ごとに解決策を作りましたが、それを分かち合うと思いました。その答えで提案されているかのように使用されて
@function linear-gradient-x($direction, $stops...) {
@return linear-gradient($direction, $stops);
}
@function prefixed-background-image-list-x($prefix, $images) {
$ret-val:();
@each $image in $images {
$prefixed-image: #{$prefix}$image;
$ret-val: append($ret-val, $prefixed-image, 'comma');
}
@return $ret-val;
}
@mixin background-image-x($backgrounds...) {
background-image: prefixed-background-image-list-x("-moz-", $backgrounds);
background-image: prefixed-background-image-list-x("-webkit-", $backgrounds);
background-image: prefixed-background-image-list-x("-o-", $backgrounds);
background-image: prefixed-background-image-list-x("ms-", $backgrounds);
background-image: prefixed-background-image-list-x("", $backgrounds);
}
:
div.needs-two-backgrounds {
@include background-image-x(
linear-gradient-x(90deg, $color-one 0, $color-two 100%),
linear-gradient-x(180deg, $color-three 0, $color-four 20%, $color-five 100%)
);
}
が、これは誰かに役立ちます願っています。
申し訳ありませんが、それは戻って、このテストに得るために私を少しかかりました。 – Ixonal