0

我正在尝试创建一个更少的帮助文件,它只会为我创建一堆更少的变量。我想尝试使用参数化的 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;
}

现在,我尝试使用字符串转义等,但每当我在 ':' 运算符的左侧使用它时,我都会收到一个解析错误。

要么无法完成,要么我错过了一些东西:)

4

0 回答 0