我正在尝试创建一个较少的帮助文件,只为我创建一堆较少的变量。我想尝试使用参数化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
手动创建这些(ugh)后,我可以使用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;
}
现在,我尝试使用字符串转义等,但每当我在':'运算符的左侧使用它时,我只是得到一个解析错误。
要么无法完成,要么我遗失了一些东西:)