没有孩子的混合?

时间:2013-08-08 05:07:36

标签: css less mixins

我正在尝试制作一个LESS mixin,它会给我这个输出:

.resource:nth-child(8n+1) { clear: left; }

到目前为止我已经得到了这个:

.wrap-every(@n) {
    &:nth-child(@n + "n+1") {  // parse error on this line
        clear: left;
    }
}

.resource {
    .wrap-every(8);
}

但是它在指示的行上给出了一个解析错误

  

ParseError:无法识别的输入

有办法做到这一点吗?

1 个答案:

答案 0 :(得分:25)

Less> = 1.4

你可以这样做:

.wrap-every(@n) {
  &:nth-child(@{n}n + 1) {
        clear: left;
    }
}

这应该具有所需的输出。没有任何黑客需要。

的旧版本中

您可以尝试简单的字符串插值

.wrap-every(@n) {
    @t: ~":nth-child(@{n}n + 1)";
    &@{t} {
        clear: left;
    }
}

并且两种情况下的输出 CSS 都应该是这样的:

.resource:nth-child(8n + 1) {
  clear: left;
}