美文网首页技术收藏我爱编程
【CSS】再谈 CSS 预处理器

【CSS】再谈 CSS 预处理器

作者: izhongxia | 来源:发表于2016-11-18 11:23 被阅读40次

时间:2016-11-18 10:33:40
原文地址:《再谈 CSS 预处理器》

这个是目前看过文章中,最完整详细的介绍了 less, sass ,stylus 三者的异同点,因此在此记录下。
Less, Sass, Stylus 功能上 大体相同, 具体喜欢用哪一个,或者一个都不用, 这个看个人喜好。

详细请看原文

CSS预处理器是什么?

CSS 预处理器是什么?一般来说,它们基于 CSS 扩展了一套属于自己的 DSL,来解决我们书写 CSS 时难以解决的问题:

  • 语法不够强大,比如无法嵌套书写导致模块化开发中需要书写很多重复的选择器;
  • 没有变量和合理的样式复用机制,使得逻辑上相关的属性值必须以字面量的形式重复输出,导致难以维护。

所以这就决定了 CSS 预处理器的主要目标:提供 CSS 缺失的样式层复用机制、减少冗余代码,提高样式代码的可维护性。这不是锦上添花,而恰恰是雪中送炭。

目前最主流的三个预处理器 LessSassStylus(按字母顺序排名)

总结

我(原文作者)个人认为,Less 从语言特性的设计到功能的健壮程度和另外两者相比都有一些缺陷,但因为 Bootstrap 引入了 Less,导致 Less 在今天还是有很多用户。用 Less 可以满足大多数场景的需求,但相比另外两者,基于 Less 开发类库会复杂得多,实现的代码会比较脏,能实现的功能也会受到 DSL 的制约。比 Stylus 语义更清晰、比 Sass 更接近 CSS 语法,使得刚刚转用 CSS 预编译的开发者能够更平滑地进行切换。当初 Sass 并不支持 SCSS 语法,使得转投 Sass 成本较高,所以 Alexis Sellier 才萌生开发一个更「CSS」的预处理器的念头。大获成功以后反过来影响到了 Sass,迫使其也支持类似 CSS 语法的 SCSS。另外,Less 支持浏览器端编译,这无疑降低了开发门槛,使得很多非专业的开发者能够更快地上手(对于一些个人项目来说,能让项目跑起来就行,对前端的性能并没有专业工程师那么高的要求)。

Sass 在三者之中历史最久,也吸收了其他两者的一些优点。从功能上来说 Sass 大而全,语义明晰但是代码很容易显得累赘。主项目基于 Ruby 可能也是一部分人不选择它的理由(Less 开始也是基于 Ruby 开发,后来逐渐转到 less.js 项目中)。 Sass 有一个「事实标准」库——Compass,于是对于很多开发者而言省去了选择类库的烦恼,对于提升开发效率也有不小的帮助。

Stylus 的语法非常灵活,很多语义都是根据上下文隐含的。基于 Stylus 可以写出非常简洁的代码,但对使用团队的开发素养要求也更高,更需要有良好的开发规范或约定。Stylus 是前 Node.js 圈第一大神 TJ Holowaychuk 的作品,虽然他已经弃坑了,但是仍然有不小的号召力。和 Sass 有 Compass 类似,Stylus 有一个官方开发的样式库 nib,同样提供了不少好用的 mixin。对于比较有经验的开发者,用 Stylus 可能更会有一种畅快的感觉。总的来说用一个词形容 Stylus 的话,我会用「sexy」。

总的来说,三种预处理器百分之七八十的功能是类似的。Less 适合帮助团队更快地上手预处理代码的开发,而 Sass 和 Stylus 的差异更在于口味。比如有的人喜欢 jQuery 用一个 $ 做大部分的事,而另一些人觉得不一样的功能就该有明确的语义上的差别。在这里我不会做具体的推荐。当然,再次声明一下由于我个人接触 Less 开发比较多,所以可能遇到的坑也多一些,文中没有列出 Sass 和 Stylus 的问题并不代表他们没有。

相关文章

  • 再谈CSS 预处理器

    再谈CSS 预处理器2016-09-09 Justineo JavaScript转自:http://efe.bai...

  • 【CSS】再谈 CSS 预处理器

    时间:2016-11-18 10:33:40原文地址:《再谈 CSS 预处理器》 这个是目前看过文章中,最完整详细...

  • CSS预处理器之Less

    CSS预处理器 什么是CSS预处理器 CSS 预处理器就是用某一种语言用来为 CSS 增加一些动态语言的的特性(变...

  • 在Vue.js中使用Stylus预处理器

    概述 什么是Stylus Stylus是一个CSS预处理器。 什么是CSS预处理器 关于CSS预处理器,推荐先行阅...

  • 十分钟入门sass

    什么是css预处理器 :bookmark: CSS 预处理器是一个能让你通过预处理器自己的语法生成CSS的工具。 ...

  • sass是什么?为什么要使用sass?使用sass,以及其他一些

    什么是scss? Sass属于CSS预处理器,那什么是 CSS 预处理器呢? CSS 预处理器定义了一种新的语言,...

  • Sass和Less

    什么是Sass和Less? Sass和Less都属于CSS预处理器。 什么是 CSS 预处理器呢? CSS 预处理...

  • Scss与 Less 对比

    相同点: 两者都是css预处理器 能够更快速的编写代码 结构清晰,便于维护 相比较: sass是较成熟的CSS预处...

  • CSS预处理器

    一、CSS预处理器CSS预处理器是一种专门的编程语言,用来为CSS增加一些编程特性(CSS本身不是编程语言)。不需...

  • 六、CSS预处理器

    css预处理器 什么是css预处理器基于css的另一种语言通过工具编译成css添加了很多css不具备的特性能提升c...

网友评论

    本文标题:【CSS】再谈 CSS 预处理器

    本文链接:https://www.haomeiwen.com/subject/dswjpttx.html