在less中,使用波浪号 ~ 包裹字符串并配合引号,即可将内容作为原始css输出,从而绕过编译器的转义处理。这种方法专门用于生成浏览器厂商前缀、自定义属性或包含特殊符号的css规则。

如何为CSS属性添加厂商前缀?
通过 ~"-webkit-transform: rotate(45deg);" 这种语法,可以将带连字符的属性名直接写入Less文件,编译器会原样保留这些字符,确保生成的CSS能被旧版浏览器正确识别。

@var: ~"-webkit-transform";
.box {
@var: rotate(45deg);
}上述代码编译后的结果为:.box { -webkit-transform: rotate(45deg); }。这里的关键在于 @var 变量被定义为转义字符串,当它在属性位置使用时,Less不会尝试解析其内部结构,而是直接将其作为属性名输出。
立即学习“前端免费学习笔记(深入)”;
如何在Less中定义CSS自定义属性(变量)?
利用 ~"--custom-color: red;" 可以创建CSS变量声明。由于 -- 开头的属性名在Less中可能被视为无效或引发警告,使用转义可以强制输出这些现代CSS特性。

:root {
~"--primary-color: #007bff;";
}编译后得到::root { --primary-color: #007bff; }。这种写法允许开发者在Less文件中直接管理CSS变量,而无需担心预处理器对双连字符的过滤。
转义字符串中包含插值表达式时会发生什么?
如果转义字符串内部使用了 @{...} 插值,Less会先计算插值部分,然后将结果作为整体转义输出。例如 ~"color: @{theme};" 会根据 @theme 的值动态生成颜色属性。


















