CSS LESS - 在循环中添加变量

CSS LESS - add variable in loop

首先,我有不同的颜色变量:

@nav-left-color-item-1 : #e7663f;
@nav-left-color-item-2 : #69a7d9;
...
@nav-left-color-item-X : #554789;

然后,我做了一个循环来创建不同的项目,如下所示:

.generate-item(3);

.generate-item(@n, @i: 1) when (@i =< @n) {
  .item@{i} {

  }
  .generate-item(@n, (@i + 1));
}

...给它

.item1 {

}
.item2 {

}
.item3 {

}

我想做的是在每个项目中插入我的不同颜色变量,并与索引匹配... 我添加了变量 @i 而不是索引,但它不起作用...

.generate-item(3);

    .generate-item(@n, @i: 1) when (@i =< @n) {
      .item@{i} {
        @nav-left-color-item-@i ;
      }
      .generate-item(@n, (@i + 1));
    }

感谢您的帮助!

您可以将颜色移动到数组中,然后按索引获取,例如:

@colors: 'color-item-1' #f00, 'color-item-2' #0f0, 'color-item-3' #00f;

.generate-item(3);

.generate-item(@n, @i: 1) when (@i =< @n) {
    .item@{i} {
        color: extract(extract(@colors, @i),2);
      }
   .generate-item(@n, (@i + 1));
}