在LESS中定义一个mixin类的原因

时间:2014-02-02 21:38:13

标签: less

例如在我发现的Bootstrap的源代码中,mixins.less定义了:

.clearfix() {
  &:before,
  &:after {
    content: " "; // 1
    display: table; // 2
  }
  &:after {
    clear: both;
  }
}

和utilities.less:

.clearfix {
  .clearfix();
}

我知道有一个clearfix类是有用的,但除了mixins.less之外只有mixins和类没有任何原因,没有在mixins.less中定义类而不是mixin吗?

2 个答案:

答案 0 :(得分:3)

灵活性

由于Bootstrap是一个库,他们意识到有些人不想使用Bootstrap中的类,但是想要使用mixins。通过保持分离,用户可以导入mixins.less并将.clearfix()应用到他们自己的代码中,使用他们自己的类名,而不会实际创建.clearfix的输出类本身。同时,如果想要使用整个Bootstrap库,他们希望为整个库的用户提供名称为.clearfix的实际类。

答案 1 :(得分:1)

除了保持图书馆组织的一致性之外,我没有看到任何理由(例如“mixins.less不应该生成任何CSS和实用程序。应该只有类”)。