在 darken 函数中使用十六进制颜色作为字符串

Use hexadecimal color as string in darken function

在 less 样式中,我有一个字符串变量。

@colorString: 'DADADA';

我可以把它变成一种颜色:

@color: ~'#@{colorString}';

我可以使用@color 从样式中设置一些值:

div { color: @color }

但我不能将它与 darken() 函数(或任何其他管理颜色的内置函数)一起使用。 示例:

background: linear-gradient(to bottom right,darken( @color , 20%), @color);

编译器输出 错误评估函数 darken:color.toHSL 不是函数

@color 似乎不是一种颜色 (#DADADA),而是一个字符串 ('#DADADA'),函数无法解析它。

在不更改@colorString(它必须是字符串)的情况下解决这个问题的任何想法?

您需要使用 color() 将字符串解析为颜色。

@colorString: 'DADADA';
@color: color('#@{colorString}');
background: linear-gradient(to bottom right, darken(@color, 20%), @color);

文档:http://lesscss.org/functions/#misc-functions-color