如何在CSS属性值中使用由斜杠分隔的变量时防止除法

时间:2011-02-14 04:53:54

标签: css sass

当我尝试将变量用于字体速记属性的font-size和line-height部分时,Sass执行除法而不是用斜杠分隔这两个值。

@mixin test($fontsize, $lineheight) { font: $fontsize/$lineheight sans-serif; }

#my-font { @include test(14px, 20px); }

目前输出:

#my-font { font: 0.7 sans-serif; }

我如何告诉Sass停止分裂?

2 个答案:

答案 0 :(得分:34)

使用#{} interpolation表示法将变量视为字符串。由于Sass无法对字符串执行算术运算,因此将/视为文字斜杠而不是除法运算符:

@mixin test($fontsize, $lineheight) {
    font: #{$fontsize}/#{$lineheight} sans-serif;
}

答案 1 :(得分:2)

BoltClock的答案在大多数情况下都有效,但如果变量$fontsize是一个函数,例如$fontsize: rem-calc(10px),它将以字符串形式输出。

更加防弹的方法是插入斜杠:

@mixin test($fontsize, $lineheight) {
    font: $fontsize #{"/"} $lineheight sans-serif;
}