css – 使用SASS mixin或创建单独的类更好?

前端之家收集整理的这篇文章主要介绍了css – 使用SASS mixin或创建单独的类更好?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在我们的项目中,我们使用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并允许重复的代码
>创建类.clearfix并在标记中使用它,如< span
class =“example-class clearfix”> …< / span>避免重复

此外,如果有人有更好的解决方案 – 我会很高兴得到它.欢迎任何评论/讨论.

解决方法

首先,我想提一下应用overflow:隐藏到带浮动子元素的元素中清除浮点数就像包含你正在谈论的clearfix mixin一样.

为了便于阅读和表现,这可能是明显的赢家.我没有任何支持溢出的数据:隐藏实际上比clearfix更快,但如果确实如此,我不会感到惊讶.但它的CSS要少得多,所以它绝对是下载数据的赢家.

虽然你的布局可能会有一些相对的定位,但并不总是可以使用overflow:hidden.在这些情况下,最佳性能方法是为.clearfix创建一个全局类,并将其应用于所有应该清除其子项的元素.虽然它听起来不易于维护,但我认为在整个CSS中包含mixin更容易维护,因为无论何时进行更改,都不必清除缓存的CSS.

我的建议是使用overflow:hidden和.clearfix.废料@include clearfix.

理由是你不能总是只使用一种方法(有时你可能想要使用:after元素用于其他方法,有时你可能希望内容在其容器之外伸展),所以无论如何都要有两种方法.

有了这两种方法,您就可以适应任何场景.只记得你可以绑定溢出:隐藏到一个类名,使其像DRY一样保持.clearfix.

我2¢.

编辑:

或者,但也许不是理想情况下,您可以使用@extend来创建这样的输出

.element-1,.element-2,.element-3,.element-4,.element-5 {
  // clearfix stuff
}

因此,clearfix是在一个地方而不是在文档中多次定义的.就个人而言,我不是它的忠实粉丝,但也许这对你有意义.

猜你在找的CSS相关文章