在我们的项目中,我们使用SASS进行样式开发。此外,我们使用Bootstrap,并包含下一个众所周知的mixin:
@mixin clearfix {
*zoom: 1;
&:before,
&:after {
display: table;
content: "";
// Fixes Opera/contenteditable bug:
// http://nicolasgallagher.com/micro-clearfix-hack/#comment-36952
line-height: 0;
}
&:after {
clear: both;
}
}
我们在样式中使用它:
.class-example {
@include clearfix();
. . .
}
在编译成CSS后,SASS将mixin的所有内容复制到我们使用mixin的每个类中。因此,这是大量重复的代码。我们使用mixin约100次,因此css文件中会增加约1000行额外的代码。
因此问题是:从性能/支持/可读性等方面考虑,哪种方式更好?
- 使用mixin并允许存在重复代码
- 创建class
.clearfix
并在标记中使用它,如<span class="example-class clearfix"> ... </span>
以避免重复
如果有更好的解决方案 - 我很乐意听取。欢迎任何评论/讨论。
@include
,您可以使用%
创建一个@extend-only selector
,然后在任何地方都可以使用@extend
。这样做不会重复代码,而是会自动将.class-example-1
、.class-example-2
以及其他扩展它的类添加到您的%
选择器的选择器列表中。http://sass-lang.com/documentation/file.SASS_REFERENCE.html#extend - jseaae
rfix只是在StackOverflow上的一个打字错误,还是也存在于现实生活中? - yunzen