0
我有了这个非常简单的萨斯功能:需要使用2 @return在萨斯功能
@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
因此处理的情况是这样我有老IE标志,当真正的输出样式老只有IE的样式表,所以这个功能我是这样做的,所有被罚款:
@function to-rem($pxval) {
@if $old-ie {
@return #{$pxval}px;
} @else {
@return #{$pxval/$base-font-size}rem;
}
}
但因为我做响应的网站,我需要苏pport Opera Mini也不支持rem
,我也没有像Opera Mini那样为旧IE浏览器过滤这种方式。
任何想法如何我可以做到这一点,而不使用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);
只需检查一下,使用mixin稍微冗长些。 – 2013-02-14 05:04:53
函数的另一个好处是我可以在mixins中使用它:'@include prefix(column-gap,to-rem($ spacing-base),(-webkit-,-moz-,“”));'' ,Opera Mini将不得不错过这些罕见的例子。 – 2013-02-14 05:54:48