【问题标题】:CSS LESS - add variable in loopCSS LESS - 在循环中添加变量
【发布时间】:2015-01-09 08:31:36
【问题描述】:

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

@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));
    }

感谢您的帮助!

【问题讨论】:

  • 您要设置的属性是什么?目前,您只是拥有没有任何属性的变量,这将导致错误。此外,您可以使用数组列表而不是像 this answer 那样维护单个变量

标签: css loops less


【解决方案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));
}

【讨论】:

  • 完美:)。我在这里找到了另一个解决方案:stackoverflow.com/questions/18272285/… 但你的更好! ! !
  • @Zagloo - LESS 不支持键值对,因此在这里您将数组拆分,然后将项目拆分为键值对......您想要第二个。如果你只是有一个值数组,你就不需要这个和第二个嵌套的extract
猜你喜欢
  • 2014-04-13
  • 2015-10-26
  • 2019-03-30
  • 1970-01-01
  • 2022-07-27
  • 2014-02-21
  • 1970-01-01
  • 2012-03-18
  • 2014-08-24
相关资源
最近更新 更多