当我尝试将变量用于字体速记属性的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; }
我怎么能告诉萨斯停止分裂?
使用#{} interpolation表示法将变量视为字符串 . 由于Sass无法对字符串执行算术运算,因此将 / 视为字面斜杠而不是除法运算符:
/
@mixin test($fontsize, $lineheight) { font: #{$fontsize}/#{$lineheight} sans-serif; }
BoltClock的答案在大多数情况下都有效,但是如果变量 $fontsize 是一个函数,例如 $fontsize: rem-calc(10px) ,它将作为字符串输出 .
$fontsize
$fontsize: rem-calc(10px)
更加防弹的方法是插入斜线:
@mixin test($fontsize, $lineheight) { font: $fontsize #{"/"} $lineheight sans-serif; }
2 回答
使用#{} interpolation表示法将变量视为字符串 . 由于Sass无法对字符串执行算术运算,因此将
/
视为字面斜杠而不是除法运算符:BoltClock的答案在大多数情况下都有效,但是如果变量
$fontsize
是一个函数,例如$fontsize: rem-calc(10px)
,它将作为字符串输出 .更加防弹的方法是插入斜线: