サスは、このような機能を提供していません。
グローバル変数を使用することで、合理的に近い値を得ることができます。しかし、サードパーティが提供するものを含め、使用しているすべてのシングルミックスは、このように動作するように変更する必要があります。
// the setup
$append-property-vals:(); // global variable
$old-append-property-vals:(); // global variable
@mixin append-property($key, $val, $separator: comma) {
$old-val: map-get($append-property-vals, $key);
@if $old-val {
$append-property-vals: map-merge($append-property-vals, ($key: append($old-val, $val, $separator))) !global;
} @else {
$append-property-vals: map-merge($append-property-vals, ($key: $val)) !global;
}
}
@mixin append-properties {
// cache the original value
$old-append-property-vals: $append-property-vals !global;
@content;
// write out the saved up properties
@each $key, $val in $append-property-vals {
#{$key}: $val;
}
// restore the original value
$append-property-vals: $old-append-property-vals !global;
}
// modify the OP's provided mixins to work
@mixin scale {
// if the vals should be comma delimited, write `comma` instead of `space` for the 3rd argument
@include append-property(transform, scale(2), space);
}
@mixin rotate {
@include append-property(transform, rotate(15deg), space);
}
// call the mixins
.myclass {
@include append-properties {
@include scale;
@include rotate;
}
}
出力:
.myclass {
transform: scale(2) rotate(15deg);
}
CSS、この答えは生成は無効です。また、実際には質問されている質問には答えません。 – cimmanon
@cimmanon偶発的なコンマの追加。これはSCSSの代替品でもあり、直接的な代替品ではありません。 –
問題のミックスインが他のことを行うだけでなく、変換プロパティを設定する場合、これはOPに役立ちません。 – cimmanon