プレフィックスが必要なプロパティはトランジションだけではありません。ベンダーがサポートを追加すると、プレフィックスの追加を停止できます。ミックスインの各部分を抽象化すると、コードは長期的にはより保守しやすくなります。
$default-prefixes: webkit moz ms o;
@mixin build-prefix-values($property, $value, $prefixes: $default-prefixes) {
@each $prefix in $prefixes {
-#{$prefix}-#{$property}: #{$value};
}
#{$property}: #{$value};
}
@mixin transition($property: all, $delay: 1s, $timing: linear) {
$value: $property $delay $timing;
// use default prefixes
@include build-prefix-values('transition', $value);
}
// using defaults of 'all' '1s' and 'linear'
p {
@include transition();
}
// using custom values
.fast {
@include transition('height', '.1s', 'ease', '0');
}
border-radius
ここで、必要なプレフィックスがどこにあるかについて@mixinを記述したいとしますwebkit
。
@mixin border-radius($radius) {
$prefixes: webkit;
@include build-prefix-values('border-radius', $radius, $prefixes);
}