过渡不是唯一需要前缀的属性。 随着供应商添加支持, 您可以停止包含前缀 。 如果您抽象了组合中的每一个部分, 您的代码将长期更可维持 。
$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 );
}
现在让我们来表示您想要为 边界- radius code> 写入一个@ mixin, 在那里, webkit
是您唯一需要的前缀 。
@mixin border-radius($radius) {
$prefixes: webkit;
@include build-prefix-values( border-radius , $radius, $prefixes);
}