我正在处理一个Sass样式表,在其中我希望使用该calc
元素来动态调整某些内容的大小。由于calc
元素尚未规范,我需要为目标calc()
,-moz-calc()
和-webkit-calc()
。
有没有一种方法可以创建可将表达式传递给的mixin或函数,以便生成所需的标签,然后将其设置为a width
或height
?
我正在处理一个Sass样式表,在其中我希望使用该calc
元素来动态调整某些内容的大小。由于calc
元素尚未规范,我需要为目标calc()
,-moz-calc()
和-webkit-calc()
。
有没有一种方法可以创建可将表达式传递给的mixin或函数,以便生成所需的标签,然后将其设置为a width
或height
?
另一种写法:
@mixin calc($prop, $val) {
@each $pre in -webkit-, -moz-, -o- {
#{$prop}: $pre + calc(#{$val});
}
#{$prop}: calc(#{$val});
}
.myClass {
@include calc(width, "25% - 1em");
}
我认为这是一种更优雅的方式。
它将是带有参数的基本mixin,幸运的是,表达式在受支持的范围内不是特定于浏览器的:
将呈现为
当不支持calc时,您可能需要包括一个“默认”值。