例如在我发现的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吗?
答案 0 :(得分:3)
由于Bootstrap是一个库,他们意识到有些人不想使用Bootstrap中的类,但是想要使用mixins。通过保持分离,用户可以导入mixins.less
并将.clearfix()
应用到他们自己的代码中,使用他们自己的类名,而不会实际创建.clearfix
的输出类本身。同时,如果想要使用整个Bootstrap库,他们希望为整个库的用户提供名称为.clearfix
的实际类。
答案 1 :(得分:1)
除了保持图书馆组织的一致性之外,我没有看到任何理由(例如“mixins.less不应该生成任何CSS和实用程序。应该只有类”)。