通过使用预处理器变量,很容易设置一个变量并操纵它,以便我可以使用它来设置多个属性。(演示)
在尝试使用原生 CSS 变量时,我注意到我可以将它们与预处理器变量结合使用,在以下示例中:(请使用火狐浏览器)
h1 {
--length: 40px;
@length: var(--length);
line-height: @length;
border: 5px solid tomato;
}
line-height 属性在 40px 时显示正确。
但是,当我尝试操纵预处理器变量 - 像这样:
h1 {
--length: 40px;
@length: var(--length);
@length2: @length*2;
line-height: @length;
padding: @length2;
border: 5px solid tomato;
}
......代码运行失败了。
这有什么可能解决的方法吗?
var(--length)
在 Less 编译器将代码编译成 CSS 之后由 UA 解析为其值。在编译时,@length
的值只是var(--length)
,它不是一个数字,因此会导致编译错误。尝试这样做:@length2: @length ~"* 2";
然后看看是否有效。我无法测试,因为我的浏览器版本较旧。或者可以尝试这样做:@length2: ~"calc(@{length} * 2)";
。 - Harryvar(--length) * 2;
- Danieldcalc()
包装起来?虽然这只是猜测。您能否在不使用预处理器的情况下对CSS变量应用数学运算? - Harry