Less 如何在更少的时间内动态声明变量?

Less 如何在更少的时间内动态声明变量?,less,Less,我正在尝试创建一个更少的助手文件,它只为我创建了一堆更少的变量。我想尝试使用参数化的mixin来做到这一点,这样我就可以减少重复的易出错代码的数量。我一直在寻找答案,但还没有找到任何答案,所以只是想知道这是否可能 我的目标是: 定义一组以特定格式命名的变量,例如 @MyVar-foo1-bar1 @MyVar-foo1-bar2 @MyVar-foo1-bar... @MyVar-foo1-barN @MyVar-foo2-bar1 @MyVar-foo2-bar2 @MyVar-foo2-ba

我正在尝试创建一个更少的助手文件,它只为我创建了一堆更少的变量。我想尝试使用参数化的mixin来做到这一点,这样我就可以减少重复的易出错代码的数量。我一直在寻找答案,但还没有找到任何答案,所以只是想知道这是否可能

我的目标是:

定义一组以特定格式命名的变量,例如

@MyVar-foo1-bar1
@MyVar-foo1-bar2
@MyVar-foo1-bar...
@MyVar-foo1-barN
@MyVar-foo2-bar1
@MyVar-foo2-bar2
@MyVar-foo2-bar...
@MyVar-foo2-barN
@MyVar-foo(...)-bar(xxx)
@MyVar-fooN-barN
考虑到我可能有数百个变量要声明,这很快就会变得单调乏味。通过使用mixin进行迭代,显然可以极大地简化它。例如

(伪代码只是因为我无法让它工作)

应导致无输出,但应定义以下变量以供以后使用:

@MyVar-foo1-bar1: value-one
@MyVar-foo1-bar2: value-two
@MyVar-foo1-bar3: value-three
@MyVar-foo1-bar4: value-four
@MyVar-foo2-bar1: value-one
@MyVar-foo2-bar2: value-two
@MyVar-foo2-bar3: value-three
@MyVar-foo2-bar4: value-four
在手动创建这些(ugh)之后,我以后可以使用mixin轻松地使用它们,例如

.useMyVars(@myClass) {
    (~".@{myClass} #id1"){
        cssparameter:~"@{MyVar-@{myClass}bar1}";
    }
    (~".@{myClass} #id2"){
        cssparameter:~"@{MyVar-@{myClass}bar2}";
    }
    (~".@{myClass} #id3"){
        cssparameter:~"@{MyVar-@{myClass}bar3}";
    }
    (~".@{myClass} #id4"){
        cssparameter:~"@{MyVar-@{myClass}bar4}";
    }
}
.useMyVars(foo);
结果:

.foo #id1{
    cssparameter:value1;
}
.foo #id2{
    cssparameter:value2;
}
.foo #id3{
    cssparameter:value3;
}
.foo #id4{
    cssparameter:value4;
}
现在,我尝试使用字符串转义等,但每当我在“:”操作符的左边使用它时,我只会得到一个解析错误


要么无法完成,要么我遗漏了一些东西:)

您不能这样分配变量。但是,您真的在重复这些变量中的值吗?您的示例mixin将设置相同的四个值,这将导致人们进一步质疑您到底想要实现什么。也许有更好的办法。好吧,我想这是办不到的。不过,我觉得值得先问一下:)另外,不,我没有重复价值观,这只是一个例子。我得重新设计这个问题。谢谢:)可能的副本
.foo #id1{
    cssparameter:value1;
}
.foo #id2{
    cssparameter:value2;
}
.foo #id3{
    cssparameter:value3;
}
.foo #id4{
    cssparameter:value4;
}