Less 连接一个变量和一个字符串,以较少的时间引用另一个变量

Less 连接一个变量和一个字符串,以较少的时间引用另一个变量,less,Less,我有一大串表示颜色的变量。例如,@Yellow-100是淡黄色,@Purple-900是深紫色 我有一个@Page Background变量,它当前直接指向@Yellow-100,还有几个其他变量,它们指向各种其他颜色的黄色 @页面背景:@Yellow-100; …但我想在我的应用程序中设置一种基本颜色,这样我就可以轻松地在不同的颜色之间切换,而不必重命名所有这些变量。因此,我定义了以下变量: @Base:黄色; 我已经通读了,但它没有提到如何用变量和字符串引用另一个变量@@Base将引用@

我有一大串表示颜色的变量。例如,
@Yellow-100
是淡黄色,
@Purple-900
是深紫色

我有一个
@Page Background
变量,它当前直接指向
@Yellow-100
,还有几个其他变量,它们指向各种其他颜色的黄色

@页面背景:@Yellow-100;
…但我想在我的应用程序中设置一种基本颜色,这样我就可以轻松地在不同的颜色之间切换,而不必重命名所有这些变量。因此,我定义了以下变量:

@Base:黄色;
我已经通读了,但它没有提到如何用变量和字符串引用另一个变量
@@Base
将引用
@Yellow
,但
@@Base-100
不引用
@Yellow-100
;也不是
@{Base}-100
@{@Base}-100


如何将
@Page Background
变量指向
@Yellow-100
变量,将
Yellow
替换为
@Base

  • 当我们为一个变量指定一个颜色名称时,Less默认情况下会将其转换为早期版本编译器中的
    hex
    值,因此最好使用引号中的值,使Less意识到它是字符串而不是颜色。因此,如果您使用的是较新版本的Less编译器,则可能不需要执行此步骤
  • 我们必须通过将数字连接到
    @Base
    变量的值来形成派生变量的名称,然后对其求值
  • 将两者结合在一起,下面的代码应该可以工作:

    @Yellow-100:#fff;
    @页面背景:~“@{Base}-100”;/*这将形成变量名*/
    @基地:“黄色”;
    a{
    背景:@@Page背景;
    /*使用双@引用名称包含在@Page Background中的变量*/
    }
    
    +1,但是是否有任何方法可以在不需要
    @@temp
    变量的情况下执行此操作?否则,我将不得不为我使用的每种颜色定义一个单独的
    @@temp
    变量,这听起来有点倒退。@JamesDonnelly:我认为这是不可能的,因为我们首先必须将变量名形成一个字符串,然后引用它。但如果我找到一种方法,我会尽量让你知道:)有趣的是,我想这种方法是有效的。非常感谢你!