如何将表达式传递给使用Sass变量的calc()mixin

时间:2013-05-21 01:55:35

标签: sass

我有一个mixin设置来进行跨浏览器计算

@mixin calc($property, $expression...) { 
  #{$property}: -moz-calc(#{$expression}); 
  #{$property}: -o-calc(#{$expression}); 
  #{$property}: -webkit-calc(#{$expression}); 
  #{$property}: calc(#{$expression}); 
} 

我也有一个变量。

$line: 12px;

我希望能够在其中使用变量。

@include calc(width, "30% - ( $line * 2) ) ");

但我不确定这是不是最好的方法。

1 个答案:

答案 0 :(得分:23)

您需要对传递给mixin的值使用字符串插值:

.foo {
  @include calc(width, #{"30% -  #{$line * 2}"});
}

输出:

.foo {
  width: -moz-calc(30% - 24px);
  width: -o-calc(30% - 24px);
  width: -webkit-calc(30% - 24px);
  width: calc(30% - 24px);
}