php中文网

Less中混合运算单位丢失导致计算结果不符,该怎么解决?

php中文网

less中混合运算单位丢失导致计算结果不符

在less中,使用calc()方法计算时,如果不同单位的混合运算,less会忽略单位,全部按照百分比进行计算。

问题:

我们在less中使用公式calc((100% - 40px) / 4)来计算值,却发现计算结果变成了calc(15%)。然而在正式环境中,这个公式正常工作。

答案:

在测试环境中,less遇到了单位混合运算,即百分比和像素的混合。less解析时会忽略单位,全部按照百分比计算,导致calc((100% - 40px) / 4)被解析为calc(60%/4) = calc(15%)。而正式环境中,less版本可能不同,或者其他环境设置导致了不同的解析行为。

要解决这个问题,有两种方法:一是使用单位引号,如calc((~"100% - 40px") / 4);二是将像素值定义为less变量,如@myHeight: 30px,然后计算公式为calc((~"100% - @{myHeight}") / 4)。这样,less就不会忽略单位,并正确进行计算。

以上就是Less中混合运算单位丢失导致计算结果不符,该怎么解决?的详细内容,更多请关注php中文网其它相关文章!