【发布时间】:2016-06-13 21:56:22
【问题描述】:
使用预处理器变量很容易设置一个变量并对其进行操作,以便我可以使用它来设置多个属性。 (demo)
在尝试native css variables 时,我注意到我可以将它们与预处理器变量结合起来,所以在the following example 中:(使用 firefox)
h1 {
--length: 40px;
@length: var(--length);
line-height: @length;
border: 5px solid tomato;
}
line-height 正确渲染为 40px
但是,当我试图操纵预处理器变量时 - like this:
h1 {
--length: 40px;
@length: var(--length);
@length2: @length*2;
line-height: @length;
padding: @length2;
border: 5px solid tomato;
}
...代码失败。
这有可能吗?
【问题讨论】:
-
如果我没记错的话
var(--length)被 UA 解析为它的值,这是在 Less 编译器将代码编译成 CSS 之后。在编译时,@length的值只有var(--length),它不是一个数字,因此会导致编译错误。尝试以@length2: @length ~"* 2";进行操作,看看它是否有效。我无法测试,因为我的浏览器很旧。甚至@length2: ~"calc(@{length} * 2)";. -
@Harry - 结果是填充得到了值:
var(--length) * 2; -
用
calc()环绕?不过,这两者都只是猜测。您是否能够在不使用预处理器的情况下将数学运算应用于 CSS 变量? -
@Harry - 是的,有效!请添加它作为我接受的答案
标签: less css-variables