不太认识的论点

时间:2014-04-29 15:57:11

标签: less

我正在为LESS中的颜色循环工作。问题是我的@joined参数。我想选择设置'&'到了类,但是我得到了语法错误。我怎么设置这个?

SyntaxError: could not understand value for named argument

.coloursMixin(@joined: &;) {

@white: #fff;
@black: #000;
@array: 'white','black';

.coloursMixin(@joined: &;) {
    .for(@array); .-each(@array) {
        @name: e(@array);
        @joined.@{name} {color: @@name}
    }
}


// ............................................................
// .for

.for(@i, @n) {.-each(@i)}
.for(@n)     when (isnumber(@n)) {.for(1, @n)}
.for(@i, @n) when not (@i = @n)  {
    .for((@i + (@n - @i) / abs(@n - @i)), @n);
}

// ............................................................
// .for-each

.for(@array)   when (default()) {.for-impl_(length(@array))}
.for-impl_(@i) when (@i > 1)    {.for-impl_((@i - 1))}
.for-impl_(@i)                  {.-each(extract(@array, @i))}

1 个答案:

答案 0 :(得分:2)

您无需传递任何参数。如果要为每个选择器应用不同的类,可以在其中调用no-arg mixin,并直接使用&

.coloursMixin() {
   .for(@array); .-each(@array) {
      @name: e(@array);
      &.@{name} {color: @@name}
   }
}

您可以不加任何参数使用它:

.section {
  .coloursMixin();
}

它会将选择器附加到每个类:

.section.white {
  color: #ffffff;
}
.section.black {
  color: #000000;
}