在 CSS 属性值中使用由斜杠分隔的变量时如何防止除法
当我尝试对字体速记属性的字体大小和行高部分使用变量时,Sass 执行除法而不是用斜杠分隔两个值。
@mixin test($fontsize, $lineheight) { font: $fontsize/$lineheight sans-serif; }
#my-font { @include test(14px, 20px); }
当前输出:
#my-font { font: 0.7 sans-serif; }
我怎样才能告诉 Sass 停止做除法?
When I try to use variables for the font-size and line-height portion of the font shorthand property, Sass performs division instead of separating the two values with a slash.
@mixin test($fontsize, $lineheight) { font: $fontsize/$lineheight sans-serif; }
#my-font { @include test(14px, 20px); }
This currently outputs:
#my-font { font: 0.7 sans-serif; }
How can I tell Sass to stop doing division?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
使用
#{}
插值将变量视为字符串的表示法。由于 Sass 无法对字符串执行算术运算,因此/
被视为文字斜杠而不是除法运算符:Use the
#{}
interpolation notation to treat your variables as strings. Since Sass cannot perform arithmetic on strings, the/
gets treated as a literal slash instead of the division operator:BoltClock 的答案在大多数情况下都有效,但是如果变量
$fontsize
是一个函数,例如$fontsize: rem-calc(10px)
,它将输出为字符串。更安全的方法是插入斜线:
BoltClock's answer does work in most cases, however if the variable
$fontsize
is a function, for example$fontsize: rem-calc(10px)
, it will output as a string.A more bulletproof way is to interpolate the slash: