【发布时间】:2019-05-08 08:32:17
【问题描述】:
我是使用 calc() 的 CSS 变量的新手,如果这很明显,请原谅我,但我正在尝试执行以下计算,但我终生无法弄清楚它为什么不起作用:
$h2-font-size: 21px;
--padding-top: calc(#{$h2-font-size}/3);
--padding-bottom: calc(#{$h2-font-size}/var(--padding-top));
padding-top: var(--padding-top);
padding-bottom: var(--padding-bottom);
第一部分计算 OK(即 --padding-top: calc(#{$h2-font-size}/3);)正确计算为 7 并将 OK 填充到 padding-top: 值中。
但是,padding-bottom: 值计算为0。
知道我哪里出错了吗?
最初我想知道是不是因为我使用了sass 变量,但如果这是我预计--padding-top: 会失败的问题......但它没有。
我注意到,如果我不将 px 值添加到字体大小,并将字体大小放在 CSS 变量之后,那么我确实会返回一个值(尽管我需要的数字错误):
--padding-bottom: calc(var(--padding-top)/21); = 0.3333333
但是,如果我尝试交换顺序以给我正确的计算,我会得到0:
--padding-bottom: calc(21/var(--padding-top));
我知道我还有很多东西要学,但我希望有人能帮助我朝着正确的方向前进!
谢谢
【问题讨论】:
-
留下评论,以防有人因为与我相同的问题来到这里(标题仍然适用),我设置
--my-var: 0稍后通过JS更改值。然后我尝试减去它:calc(-100px - var(--my-var)),但在这种情况下,它明确需要--my-var: 0px的单位。 -
calc(#{$a} - #{$b});会工作吗?