Sass(英文全称:Syntactically Awesome Stylesheets)是一个最初由Hampton Catlin设计并由Natalie Weizenbaum开发的层叠样式表语言。在开发最初版本之后,Weizenbaum和Chris Eppstein继续通过SassScript来继续扩充Sass的功能。SassScript是一个在Sass文件中使用的小型脚本语言。
Sass是一个将脚本解析成CSS的脚本语言,即SassScript。Sass包括两套语法。最开始的语法叫做“缩进语法”,与Haml类似,使用缩进来区分代码块,并且用-{zh-cn:回车;zh-tw:換行;}-将不同规则分隔开。而较新的语法叫做“SCSS”,使用和CSS一样的块语法,即使用大括号将不同的规则分开,使用分号将具体的样式分开。通常情况下,这两套语法通过.sass和.scss两个文件扩展名区分开。
CSS3包括一系列选择器和伪类选择器,Sass设计了一些语法,对选择器功能进行了扩展。虽然扩展功能不是CSS的语法,但是Sass解释器会把SassScript解释成合乎CSS语法的CSS文件。此外,Sass解释器也可以对.sass或.scss文件的修改进行监视,以及时更新css文件。可以认为Sass在CSS基础上加入了许多语法糖。
Sass的官方解释器是开源的并且用Ruby语言写成,但是也有用PHP、C语言、Java等实现的版本(C语言版本叫做llibSass,Java语言版本叫做JSass)。
Sass中缩进是语法的一部分。SCSS是巢状元语言,一段合法的CSS代码也是一段合法的SCSS代码。Sass支持与Firefox插件Firebug集成。
SassScript提供以下功能:变量、嵌套、混入(Mixin)、选择器继承。在解释过程中,解释器会把变量的值写入最终的CSS文件中。 Current Sass maintainer, Chris Eppstein, has expressed intent to contribute as well.
libSass的设计目标是:
- 性能:开发者反映,C++的实现速度是Ruby实现的10倍。
- 更容易集成:因为是一个C++库,不必集成或实现Ruby解释器,因此在自行开发软件的时候事情会变得更容易。例如,libSass现在已经被应用到Node.js、Go和Ruby等环境。
- 兼容性:libSass的目标是与Ruby实现完全兼容。但是目标尚未完全实现。
IDE集成
参见
*LESS (层叠样式表)
*Stylus
参考
外部链接
*
- [https://groups.google.com/group/haml Haml/Sass Google Group]
- [https://github.com/Kronuz/pyScss pyScss, a Python Scss library and client]
- [https://github.com/hapztron/sai Sai the mixins extension and CSS authoring framework for Less & Sass/Scss (Git) ]
- [https://web.archive.org/web/20150323061242/http://www.logogulf.ae/blog/sass-tools-and-resources/ Sass tools and resources]
评论 (0)