less中calc计算忽视单位的问题

990 阅读1分钟

01 前言

最近在less中遇到过使用calc计算不准确的问题,如下

1567562617(1).jpg

1567562715(1).jpg
上面给div使用了calc计算高度,发现实际计算出来的明显高于预期计算值,再仔细观察,能发现似乎是忽略了3.1rem的单位,被当成100% - 3.1%。于是乎我将rem换算成px再试试,如下
1567562941(1).jpg

1567562981(1).jpg
结果就是height变成了-55%,而且失效了。根据上面的经验可以得知,应该是计算的时候将155px当成了155%来计算。 由此,得出结论,less中的calc会忽略运算项的单位,全部当作百分比来计算。

02 解决方法

去找了less中calc的写法,发现要这么写,便能正常计算了

1567563291(1).jpg

1567563312(1).jpg

03 总结

less中有专门的写法,有跟同事交流过,sass中貌似原生写法没有问题。应该是less特点所致吧。