我正在尝试创建一个更少的帮助文件,它只会为我创建一堆更少的变量。我想尝试使用参数化的 mixins 来做到这一点,这样我就可以减少重复的容易出错的代码的数量。我一直在寻找答案,但还没有找到任何东西,所以只是想知道这是否可能。
我的目标:
定义一堆以某种格式命名的变量,例如
@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
考虑到我可能要声明数百个变量,这很快就会变得乏味。通过使用 mixins 进行迭代,显然可以极大地简化它。例如..
(仅伪代码,因为我无法使其工作)
.mymixin (@part1){
@{MyVar-@{part1}-bar1: value-one;
@{MyVar-@{part1}-bar2: value-two;
@{MyVar-@{part1}-bar3: value-three;
@{MyVar-@{part1}-bar4: value-four;
}
.mymixin(foo1);
.mymixin(foo2);
应该没有输出,但是应该定义以下变量以供以后使用:
@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
在手动创建这些(呃)之后,我可以稍后使用 mixins 轻松使用它们,例如
.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;
}
现在,我尝试使用字符串转义等,但每当我在 ':' 运算符的左侧使用它时,我都会收到一个解析错误。
要么无法完成,要么我错过了一些东西:)