我很好奇在设置 CSS 变量时使用 calc() 的行为。
例子:
#test {
--halfWidth: calc(100% / 2);
}
现在,如果#test
元素 adiv
是 500px 宽,我希望将--halfWidth
变量设置为 250px。
但是,据我所知,var(--halfWidth)
其他地方使用的代码只是放在calc(100% / 2)
字符串中而不是250px
. 这意味着我不能使用元素 A 的计算并稍后在元素 B 中使用它,因为它会简单地设置为例如width: var(--halfWidth);
元素 B 的宽度的一半而不是元素 A 的宽度的一半,其中变量是定义。
我已经在网上搜寻了有关此行为的任何文档,但到目前为止我还是一片空白。
理想情况下,使用 calc 设置 CSS 变量应该有两种变体:
- 一个变体就像这个例子一样工作,只是按原样放入字符串,禁止任何字符串内变量替换。
- 第二个变体,其中 calc() 将产生计算结果,而不是简单地替换字符串。
如何做到这一点?我宁愿把实际的实现留给适合它的人,但一种可能性是eval()
一种事情;喜欢eval(calc(100% / 2))
会给结果250px
。
无论如何,如果有人有任何关于这种行为的真实文档或如何让上面的示例产生结果的解决方案,我会全神贯注!
编辑:仅供参考,我已阅读https ://drafts.csswg.org/css-variables/ 上的规范