Less 4.0 起默认禁用外部除法运算符 /,仅括号内(如 (100px / 4))或显式 ./ 才识别为除法,以避免与 CSS 斜杠语法冲突;EasyLess v1.7.0+ 同步启用 math: always 模式,calc() 内除法需用字符串拼接(如 ~"calc(100% / 3)")而非直接运算。

Less 4.0 默认禁用外部除法运算符 /
从 Less 4.0 开始,/ 不再被默认识别为数学除法运算符——除非它出现在括号内,或显式写成 ./。这不是 bug,而是官方为避免与 CSS URL、字体声明等常见斜杠用法冲突而做的语法收紧。
典型现象:width: 100px / 4; 编译后原样输出为 width: 100px / 4;,浏览器不识别,CSS 失效;或者直接报错 Operation on an invalid type(尤其当右侧是无单位数时)。
-
width: (100px / 4);✅ 安全,括号内/被当作除法 -
width: 100px ./ 4;✅ 显式强制除法,./是唯一带点前缀的除法语法 -
width: 100px / 4px;❌ 单位不匹配,Less 尝试约分但失败,可能报错或返回无单位值25 -
font: 14px/1.5 "sans-serif";✅ 此处/是 CSS font 简写分隔符,不受影响(因不在表达式上下文中)
EasyLess 插件同步了 Less 4.0 的 math 模式
VS Code 中的 EasyLess 插件自 v1.7.0 起默认启用 math: always 模式,完全遵循 Less 4.0 行为。这意味着:老项目升级插件后,原来能跑的 / 会突然失效,不是插件坏了,而是它现在“更标准”了。
你无法通过降级插件来绕过——旧版 EasyLess(如 v1.6.x)虽兼容旧写法,但已停止维护,且不支持新 Less 特性(如模块化导入、作用域变量等)。
- 检查当前模式:在编译输出的 CSS 文件顶部,若看到
/* Math mode: always */,说明已启用 4.0 规则 - 不建议改配置强行切回
math: strict或parens-division,因为这些模式已被弃用,未来版本将移除 - 团队协作时,务必统一插件版本,并在 README 中注明除法规范,避免有人删掉括号“图省事”
calc() 里的除法不能混用 Less 运算和 CSS 运行时逻辑
很多人试图在 calc() 里写 calc(100% / 3) 并期待 Less 计算出 33.333%,这是错的。CSS 的 calc() 是浏览器运行时计算,而 Less 的除法是编译期静态求值——两者根本不在同一层。
正确做法是:如果需要静态结果,就用括号除法生成具体数值;如果需要浏览器动态响应(如视口变化),必须把整个 calc() 当作字符串原样输出,且不能让 Less 插手内部运算。
-
width: (100% / 3);→ 输出width: 33.33333333%;(静态值) -
width: ~"calc(100% / 3)";→ 输出width: calc(100% / 3);(交由浏览器执行) -
width: calc(100% / 3);❌ Less 会尝试计算,但% / number不合法,大概率报错或输出无效值 - 含变量时更要小心:
@gap: 24px;,应写~"calc(100% - @{gap})",而非calc(100% - @gap)(后者变量不展开)
单位不一致会让除法直接失效
Less 对单位极其敏感。除法结果的单位由被除数决定,但除数必须是纯数字或同单位值;否则编译失败或静默退化为字符串拼接。
例如:@base: 1.5rem; @scale: 2;,写 @result: @base / @scale; 是合法的(0.75rem);但若 @scale: 2px;,则 @base / @scale 会报错,因为 rem / px 不可约分。
- 跨单位换算必须显式:先用
unit(@base, px)提取数值(前提是 @base 确实是 px 单位),或靠设计系统约定(如@rem-base: 16px;)手动转换 - 媒体查询中做适配时,常见错误是
font-size: 320px / @number;(@number 无单位),应改为(320px / @number)或320px ./ @number - 乘法比除法宽容:
10px * 2.5→25px;但10px / 2.5必须加括号,否则不被识别为除法
实际项目里最常被忽略的,是把 calc() 当作 Less 表达式去写——它不是,它是 CSS 字符串。所有变量插值、单位校验、括号包裹,都得按字符串拼接规则来,而不是数学表达式规则。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











