Hot For Coding
如何在Less中使用使用calc

Less的好处不用说大家都知道,确实让写CSS的人不在痛苦了,最近我在Less里加入calc时确发现了有点问题,我在Less中这么写

div {
  width: calc(100% - 30px);
}

结果Less把这个当成运算式去执行了,结果给我解析成这样:

div {
  width: calc(70%);
}

于是,我把Less改写成这样:

div {
  width : calc(~"100% - 30px");
}

解析结果正常:

div {
  width: calc(100% - 30px);
}

然而,把30px替换为一个变量,怎么写呢?

div {
  @diff : 30px;
  width : calc(~"100% - " + @diff);
}

这么写WebStorm没有报错,但Less编译器报错了

C:\Users\zhong\WebstormProjects\test>grunt less
Running "less:development" (less) task
>> ParseError: Unrecognised input in style.less on line 4, column 2:
>> 3    @diff : 30px;
>> 4    width : calc(~"100% - " + @diff);
>> 5 }
Warning: Error compiling style.less Use --force to continue.
 
Aborted due to warnings.

于是这么写:

div {
  @diff : 30px;
  width : calc(~"100% - " @diff);
}

顺利编译过去,但WebStorm却老是提示语法错误,虽然也能编译但看着文件有一个错误提示心里老感觉不爽,找半天也没发现WebStorm如何调试语法提示错误设置。于是,改成如下写法

div {
  @diff : 30px;
  width : calc(~"100% - @{diff}");
}

这种写法又能编译,WebStorm里又不报错,所以我比较喜欢用这种写法。

TITLE: 如何在Less中使用使用calc

LINK: https://www.qttc.net/448_use_calc_in_less.html

NOTE: 转载内容请注明出处