【发布时间】:2016-09-17 07:13:39
【问题描述】:
我想用 scss 重新创建以下内容:
transform: rotate(-20deg) scale(1) skew(-20deg) translate(-40px);
但我想避免输入多个浏览器前缀,所以我有:
@mixin transform($transforms) {
-moz-transform: $transforms;
-o-transform: $transforms;
-ms-transform: $transforms;
-webkit-transform: $transforms;
transform: $transforms;
}
这适用于单独的转换,例如:
@mixin scale($scale) {
@include transform(scale($scale));
}
我已尝试包含函数
@mixin skewTitle($rot, $sca, $ske, $tran){
@include transform(scale($sca));
@include transform(skew(#{$ske}deg));
@include transform(translate($tran));
@include transform(rot(#{$rot}deg));
}
但它只是将它们连续组合,导致其中一个覆盖另一个。
-moz-transform: scale(1);
-o-transform: scale(1);
-ms-transform: scale(1);
-webkit-transform: scale(1);
transform: scale(1);
-moz-transform: rotate(-30deg);
-o-transform: rotate(-30deg);
-ms-transform: rotate(-30deg);
-webkit-transform: rotate(-30deg);
transform: rotate(-30deg);
-moz-transform: skew(-20deg);
-o-transform: skew(-20deg);
-ms-transform: skew(-20deg);
-webkit-transform: skew(-20deg);
transform: skew(-20deg);
-moz-transform: translate(-40px);
-o-transform: translate(-40px);
-ms-transform: translate(-40px);
-webkit-transform: translate(-40px);
transform: translate(-40px);
我尝试将它们组合成这样的:
@include transform: rotate(#{$val}deg) scale($val) skew(#{$val}deg) translate($val);
我试过了,但是没有用。是否可以结合地图来获得这些方面的东西?
【问题讨论】:
-
为什么不像
@include transform(rotate(#{$rot}deg) scale(#{$sca}) skew(#{$ske}deg) translate(#{$tran}px));这样写呢?它对我有用@sassmeister.com -
你能举个例子吗?它不适合我。
@mixin skewTitle($rot, $sca, $ske, $tran){ @include transform(rotate(#{$rot}deg) scale(#{$sca}) skew(#{$ske}deg) translate(#{$tran}px)); } -
请查看this。点击“View Compiled”按钮查看编译后的CSS。
-
嘿,这是一个“逗号”的情况。谢谢!