当我尝试将变量用于字体速记属性的font-size和line-height部分时,Sass执行除法而不是用斜杠分隔这两个值.
@mixin test($fontsize, $lineheight) { font: $fontsize/$lineheight sans-serif; }
#my-font { @include test(14px, 20px); }
Run Code Online (Sandbox Code Playgroud)
目前输出:
#my-font { font: 0.7 sans-serif; }
Run Code Online (Sandbox Code Playgroud)
我怎么能告诉萨斯停止分裂?
Bol*_*ock 35
使用#{}插值表示法将变量视为字符串.由于Sass无法对字符串执行算术运算,因此/将其视为字面斜杠而不是除法运算符:
@mixin test($fontsize, $lineheight) {
font: #{$fontsize}/#{$lineheight} sans-serif;
}
Run Code Online (Sandbox Code Playgroud)
小智 5
BoltClock 的答案在大多数情况下都有效,但是如果变量$fontsize是一个函数,例如$fontsize: rem-calc(10px),它将输出为字符串。
更安全的方法是插入斜线:
@mixin test($fontsize, $lineheight) {
font: $fontsize #{"/"} $lineheight sans-serif;
}
Run Code Online (Sandbox Code Playgroud)