我有这个非常简单的 Sass 函数:
@function to-rem($pxval) {
@return #{$pxval / $base-font-size}rem;
}
转换$pxval
为一个rem
值,例如
margin-top: to-rem(24);
输出:
margin-top: 1.5rem;
IE 8(旧 IE)及更低版本不支持rem
这样处理这种情况:
@function to-rem($pxval) {
@if $old-ie {
@return #{$pxval}px;
} @else {
@return #{$pxval / $base-font-size}rem;
}
}
但是因为我做响应式站点,所以我需要支持也不支持的 Opera Mini,rem
而且我没有像旧 IE 那样对 Opera Mini 进行过滤的方法。
有什么想法可以在不使用 mixin 的情况下做到这一点吗?我有一个 mixin 做同样的事情,但我用它来声明多个值并且可以处理多个属性,例如
@include to-rem(box-shadow, (inset 0 0 0 1 #2a9022) (inset 0 0 3 #459966));
@include to-rem(width height, 125);
我喜欢单个值的函数,因为它更容易编写,例如
padding: to-rem($spacing-base) 0;
与此相比:
@include to-rem(padding, $spacing-base 0);