Less与Sass属性插值:差异与解决方案
CSS属性值可通过变量动态设置。Sass利用@function函数实现动态CSS变量生成,但在Less中直接套用此方法会出错。
Less中的替代方案
Less提供了一种不同的语法来实现类似Sass @function的功能:
.color(@token) { color: rgb(var(~"--color-@{token}")); }
其中,~符号用于转义变量名,防止Less将其误认为Less变量。
使用方法:
方法一:直接调用并提取属性值
body { background: .color("abc")[color]; }
方法二:先调用函数,再使用返回值
.color(@token) { @color: var(~"--color-@{token}"); } body { .color("abcd"); //调用函数 background: @color; // 使用返回值 }
通过以上方法,即可在Less中实现Sass @function函数的动态CSS变量生成效果。