标签导航:

less和sass属性插值:如何用less实现sass中@function类似的动态css变量生成?

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变量生成效果。