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

发布于 2024-10-17 09:27:57 字数 305 浏览 1 评论 0原文

当我尝试对字体速记属性的字体大小和行高部分使用变量时,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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

挽清梦 2024-10-24 09:27:57

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

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

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:

@mixin test($fontsize, $lineheight) {
    font: #{$fontsize}/#{$lineheight} sans-serif;
}
冷…雨湿花 2024-10-24 09:27:57

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

更安全的方法是插入斜线:

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

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:

@mixin test($fontsize, $lineheight) {
    font: $fontsize #{"/"} $lineheight sans-serif;
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文