Answers:
克里斯· 科耶尔(Chris Coyier)在css-tricks.com上获得了SASS vs LESS的出色表现。绝对值得一读。
至于您的一些具体问题:
社区
我完全与SASS / Compass一起工作,所以我对LESS的社区不是很熟悉,但是我也确实不需要SASS的社区。他们的文档很棒,并且解决了我到目前为止遇到的任何问题。
不过,值得一提的是,克里斯在其帖子中提供了SASS与LESS的统计信息,我已经针对当前数字进行了更新:
LESS上
的未解决问题的数量:121 Sass上的未解决问题的数量:87LESS上的待处理拉取请求: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。
--debug-info
并且在标准版本问世之前,已经有一段时间对Firebug和Chrome进行了注释,并提供了一些版本),并且占位符(基本上是@extend,实际上没有编写要扩展的类)是最新版本。
我确实相信您的选择可能至少取决于您在做什么或使用什么。我主要与Rails合作,它支持Sass的CSS,以至于在创建新项目时会积极包含它。如果您想使用像受欢迎的Bootstrap之类的东西,默认情况下会使用Less,那么您不必担心,因为有许多流行的宝石,例如bootstrap-sass,使您可以在项目中使用它。
严格来说,这是轶事,但我个人的印象是Sass具有更大的社区和更多的支持,并且坦率地说,Sass的官方文档比Less的文档更加详细和冗长(增加所有内容的字体大小和填充)不再是一段文字)。如果您想进行详细说明,尽管我并不完全了解Less,但严格地基于两种语言,Sass是唯一具有选择器继承的语言。我相信人们可以详细说明其他差异。
最后,每个人都有自己的喜好,如果您发现一个比另一个更适合您,那么只要它可以满足您的需要,就应该使用它。但是,在使用Sass的时间里,我当然享受了它的清晰性和有效性,特别是考虑到我属于Rails领域。
我不确定Less是否具有可比性,但是Sass的主要优势之一是Compass库,它为您提供了许多常见的CSS习惯用法,旧版浏览器所需的标准hack和CSS3功能,而无需使用浏览器前缀,因此提到自动生成用于精灵图像的CSS。
至少对我来说,另一个优点是Sass允许我发现更具可读性的类似Python的语法。