Less中calc混合运算的单位解析问题:为什么 `calc((100% - 40px) / 4)` 会计算成 `calc(15%)`?

Less中calc混合运算的单位解析问题:为什么 `calc((100% - 40px) / 4)` 会计算成 `calc(15%)`?

less中calc混合运算的单位解析问题

Less中,使用带有单位的混合运算类型时,需要注意单位解析问题。

例如,下述Less代码:

calc((100% - 40px) / 4)

在正常情况下,应该计算为 calc(15%),但是,在某些情况下却计算成了 calc(15%)。

这是因为less在解析此表达式时忽略了单位,将所有单位混合运算都作为百分比处理。因此,表达式被解析为 calc(60%/4)=calc(15%)。

要解决此问题,有两种方法:

  1. 使用 ~ 操作符强制保留单位:
calc((~"100% - 40px") / 4)
  1. 将带单位的值存储在变量中,然后在表达式中使用:
@myHeight: 40px;
calc((~"100% - @{myHeight}") / 4)

以上就是Less中calc混合运算的单位解析问题:为什么 `calc((100% - 40px) / 4)` 会计算成 `calc(15%)`?的详细内容,更多请关注其它相关文章!