小编Chr*_*ook的帖子

使用 calc 的 css 变量不会更新

从下面的笔中可以看出,使用 calc 的 css 变量似乎不尊重变量的级联性质:

:root {
  --font-size-mult: 1;
  --font-size: calc(var(--font-size-mult) * 16px);
}

* {
  font-size: var(--font-size);
}

.large {
  --font-size-mult: 2;
}
Run Code Online (Sandbox Code Playgroud)

预期的行为是文档中任何具有 .large 类的部分的字体大小都是常规 16px 的两倍。从示例中可以看出,如果我重新定义 .large 内部的 font-size 变量,我会得到所需的行为,但这似乎违反直觉,因为 --font-size 的值已经是它需要的值解析为正确的值。

我测试过的所有浏览器似乎都是这种情况,所以它可能是规范的一部分,但它似乎不太适合 CSS 的工作方式。我认为变量值将根据当前元素范围内其他变量的值来计算,而不是根据变量定义的范围来计算。

https://codepen.io/Smilebags/pen/MrRKMY

这是预期的行为吗?应该是这样吗?

css css-variables

7
推荐指数
2
解决办法
1410
查看次数

标签 统计

css ×1

css-variables ×1