64

有没有办法在 less~运算符中使用变量,比如

~"calc(70% - @spacing)";

当我尝试过它时,它仅适用于静态值,例如

 ~"calc(70% - 10px)";

我可以在将字符串设置为属性之前获取要评估的字符串吗?

4

1 回答 1

180

要禁用 LESS 在发现-两个数值之间的 a 但仍然能够使用变量时自动执行的计算,您可以编写以下内容之一:

1)只转义触发计算的运算符并像往常一样使用变量

@padding: 20px;
body {
    padding: calc(100% ~"-" @padding);
}

2) 转义整个表达式并用@{padding}符号插入变量

@padding: 20px;
body {
    padding: ~"calc(100% - @{padding})";
}

我更喜欢第二个版本,因为它类似于javascript 的模板文字并且看起来更简洁,但无论哪种方式都可以。

两种解决方案都禁用自动 Less 计算并编译为正确的结果:

body {
  padding: calc(100% - 20px);
}
于 2013-01-11T13:49:28.083 回答