转换不是唯一需要前缀的属性。随着供应商添加支持,您可以停止包含前缀。如果你对 mixin 的每个部分进行抽象,从长远来看,你的代码将更易于维护。
$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
wherewebkit
是您需要的唯一前缀编写一个 @mixin。
@mixin border-radius($radius) {
$prefixes: webkit;
@include build-prefix-values('border-radius', $radius, $prefixes);
}