我想做的事情: 我(现在)有7种颜色作为变量。我希望能够在几个地方使用它们并迭代它们。
这就是我的工作
@color1:#06A1C0;
@color2:#8F4F9F;
@color3:#ED1D24;
@color4:#5A9283;
@color5:#B38C51;
@color6:#EC008C;
@color7:#8F4F9F;
@iterations: 8;
.mixin-loop (@index) when (@index > 0) {
color@{index}:hover{
@tmp: ~'@color';
@num: @index;
color: @tmp@num;
}
.mixin-loop(@index - 1);
}
.mixin-loop (0) {}
.mixin-loop(@iterations);
我需要什么 我希望这样做
.color1:hover{color#06A1Co}
.color2:hover{color#8F4F9F}
etc..
问题是什么? 我无法找到一种评估@ tmp @ num来获取实际变量的方法。
更新 Ash Hitchcock提供的完美答案。
答案 0 :(得分:13)
我今天一直试图用LESS做同样的事情。我想出的解决方案是使用Parametric Mixin来创建(定义)变量,请参阅更新的示例:
@color1:#06A1C0;
@color2:#8F4F9F;
@color3:#ED1D24;
@color4:#5A9283;
@color5:#B38C51;
@color6:#EC008C;
@color7:#8F4F9F;
@iterations: 7;
.define(@var) {
@colorSet: 'color@{var}';
}
.mixin-loop (@index) when (@index > 0) {
color@{index}:hover{
.define(@index);
color: @@colorSet;
}
.mixin-loop(@index - 1);
}
.mixin-loop (0) {}
.mixin-loop(@iterations);
希望这有帮助。
答案 1 :(得分:-1)
为什么不在CSS文件中使用它们?你为什么要在你的文件中尝试它们?这不是一个好主意 为每个DIV使用CSS会很好。给它一个代码类似的类:
<div class='@if(condition == true) {"thisclass"} else {"thatclass"}'></div>
只需使用一个CSS即可满足所有条件。那很简单。