SASS相对于LESS有什么优势吗?[关闭]


36

我正在尝试对这些CSS预处理器进行研究。

使用sass代替css预处理程序有什么好处?我要寻找的因素包括社区规模,软件项目成熟度等。

我知道还有另一个与此相关的问题,但它不是建设性地写成和封闭的。

更新资料

看起来引导程序现在已经可以使用Sass

Answers:


32

克里斯· 科耶尔(Chris Coyier)css-tricks.com上获得了SASS vs LESS的出色表现。绝对值得一读。

至于您的一些具体问题:

社区

我完全与SASS / Compass一起工作,所以我对LESS的社区不是很熟悉,但是我也确实不需要SASS的社区。他们的文档很棒,并且解决了我到目前为止遇到的任何问题。

不过,值得一提的是,克里斯在其帖子中提供了SASS与LESS的统计信息,我已经针对当前数字进行了更新:

LESS上
的未解决问题的数量:121 Sass上的未解决问题的数量:87

LESS上的待处理拉取请求:13
Sass上的待处理拉取请求:8

在LESS中上个月
的提交次数:49 在Sass中上个月的提交次数:7

值得注意的是,这些数字与Chris在2012年5月的写作时差不多。在我看来,它们在开发活动方面都相当平等。

到期

从技术上讲,Sass年龄较大。它在2007年问世,而LESS在2009年问世。也就是说,我所看到的比较使它们在功能和其他方面的“成熟度”处于几乎相同的水平。

两者都具有为他们带来更多工具的框架。LESS具有更少的框架和Centage(此外,Twitter Bootstrap是使用LESS构建的)。Sass具有指南针,重力和Susy。如果您进行挖掘,两者可能都有更多,但是这些是您搜索时首先出现的。

那么,有什么真正的区别吗?

说到写,不是真的。如果在Sass中使用类似CSS的SCSS语法(而不是更像Python的SASS语法),则只有典型的较小语法差异(@vs $),但在大多数情况下,它们基本上是相同的。

我发现编码中的两个最大区别是:a)在进行数学运算时如何处理单元,以及b)如何处理继承。当给出类似的信息时20px + 2em,LESS将删除第二个单元,并假设您的意思是第一个(yeilding 22px),而Sass将抛出错误(基本上是类型不匹配)。对于继承,LESS将其视为一个mixin(我无法很好地解释它,因此,请参阅此Tuts +文章的继承部分以了解详细信息)。

一个是否优于另一种取决于您希望它处理事物的方式。

我知道的另一个最大区别是每个默认情况下的编译方式和编译位置。Sass使用Ruby并在服务器上进行编译,从而允许您存储已编译的CSS文件并将其发送到客户端。另一方面,LESS默认情况下是使用less.js脚本即时编译CSS。但是,通过使用Node.js,LESS可以像Sass一样在服务器端进行编译。

哪一个?

因此,如果它们基本相同,则应使用哪一个?好吧,除非您真的喜欢类似Python的SASS语法,或者真的认为客户端编译是必经之路,或者您非常喜欢一个人的继承调用另一个,否则您是否更喜欢拥有(或已经安装了Ruby或Node.js。


2
+1不错的摘要。除非最近添加了它,否则LESS还没有与Sass的@extend
相提并论

最近,LESS的发展似乎大大增加了。他们正在以1.5.0(:extend()语法)添加@extend语法。他们还添加了源地图等。
WraithKenny 2013年

WraithKenny-从技术上讲,这仍然使他们落后于Sass。标准化的源地图现在在测试分支中(它们已经有了非标准的“源地图”,--debug-info并且在标准版本问世之前,已经有一段时间对Firebug和Chrome进行了注释,并提供了一些版本),并且占位符(基本上是@extend,实际上没有编写要扩展的类)是最新版本。
Shauna 2013年

@Shauna不确定它们在技术上是如何落后的……LESS自去年以来就拥有“非标准的“源地图””,并且在最新的稳定版本中已经具有标准的源地图,这与Sass当前不同。
Subhaze 2013年

@subhaze-在前面的评论中,LESS没有扩展语法,因此在这方面仍然落后。此外,Sass在最近的稳定版本中添加了“占位符”功能。就是说,我不会每隔两个月就每组中最前沿的功能进行补遗。正如我在回答中说的那样,它们几乎都是相同的,并且当一个添加了另一个却没有的功能时,另一个通常就不会落后。
Shauna 2013年

6

我确实相信您的选择可能至少取决于您在做什么或使用什么。我主要与Rails合作,它支持Sass的CSS,以至于在创建新项目时会积极包含它。如果您想使用像受欢迎的Bootstrap之类的东西,默认情况下会使用Less,那么您不必担心,因为有许多流行的宝石,例如bootstrap-sass,使您可以在项目中使用它。

严格来说,这是轶事,但我个人的印象是Sass具有更大的社区和更多的支持,并且坦率地说,Sass的官方文档比Less的文档更加详细和冗长(增加所有内容的字体大小和填充)不再是一段文字)。如果您想进行详细说明,尽管我并不完全了解Less,但严格地基于两种语言,Sass是唯一具有选择器继承的语言。我相信人们可以详细说明其他差异。

最后,每个人都有自己的喜好,如果您发现一个比另一个更适合您,那么只要它可以满足您的需要,就应该使用它。但是,在使用Sass的时间里,我当然享受了它的清晰性和有效性,特别是考虑到我属于Rails领域。


同意,如果您已经在使用Ruby,那么SASS就很有意义。我更像是一个JavaScript专家,所以对我来说更少!
WraithKenny

5

我不确定Less是否具有可比性,但是Sass的主要优势之一是Compass库,它为您提供了许多常见的CSS习惯用法,旧版浏览器所需的标准hack和CSS3功能,而无需使用浏览器前缀,因此提到自动生成用于精灵图像的CSS。

至少对我来说,另一个优点是Sass允许我发现更具可读性的类似Python的语法。


可与指南针媲美?我不知道,但是他们有Twitter的Bootstrap。
WraithKenny 2013年

好吧,它们是不同的野兽。Bootstrap是一组约定和小部件,而Compass是可重用的mixins的集合
Andrea

另外,Bootstrap在Sass中可用。
Shauna 2013年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.