调用另一个mixin的Less mixin不会生成嵌套规则

时间:2014-05-28 01:03:04

标签: less

我设置了一个Less项目,其中有三个与我的问题相关的文件。

  • 一个配置文件,它只包含变量及其值。
  • 我的Less Watcher被告知要编译的控制器文件。
  • 一个名为_buttons.less的mixin文件,我将其作为参考导入 控制器文件。

在控制器文件中,我有一个规则:

.bananas {
    .nesting-mixin(@color-list);
}

在变量文件中,我有一个列表:

@color-list : red, blue, green, black;

在mixin文件中,我有两个mixin:

.do-the-mixin(@list) {
    color: extract(@list, 1);
    &.blue {
        color: extract(@list, 2);
    }
    &.green {
        color: extract(@list, 3);
    }
}
.nesting-mixin(@list) {
    &.colored {
        .do-the-mixin(@list);
    }
}

当我从控制器文件中调用.nesting-mixin方法时,输出为:

.bananas.colored {
  color: #ff0000;
}

但是当我将嵌套mixin移动到控制器文件中时,我得到:

.bananas.colored {
  color: #ff0000;
}
.bananas.colored {
  color: #ff0000;
}
.bananas.colored.blue {
  color: #0000ff;
}
.bananas.colored.green {
  color: #008000;
}

是否有一些我不理解的Less mixin导入或嵌套的方面?第二个输出是我想要的,但我不明白为什么它需要在它所调用的同一个文件中。

感谢阅读。 :)

0 个答案:

没有答案