CSS1在1996年提出时,目的是作为一个简单的样式机制,让作者与读者都能为HTML文件添加或改写样式,但是仅限于字体、颜色、框线、间距等。在当初的建议书(http://www.w3.org/TR/REC-CSS1-961217#appendix-e)的附录有这句话:

我们不预期CSS会进化成一门程序语言。

这句话在2014年读来,是多么的讽刺。今天如果你不掌握任何一种CSS预处理器,大概都不好意思说自己是个合格的前端工程师。

当时规划CSS语言的人们认为,每个人都应该可以轻松掌握CSS,所以它不能太复杂,更不应该有一般程序语言具备的变量、逻辑、函数,等等。但是随着现实需求越来越多,CSS陆续增添了排版布局、阴影圆角、动画分镜,甚至3D特性,使得CSS网页设计早已不是一件简单的事情。更何况我们还得面对“一千零一个”浏览器臭虫与兼容问题,以及像是罚写小学生的众多厂商前缀。撰写CSS成了一种黑魔术,更别提要维护它了。

幸好我们不需要绝望,随着LESS、Sass、Stylus等CSS预处理器的兴起,我们有了另一种选择。网页设计师与开发者可以不用重复自己(DRY,Don't Repeat Yourself),撰写CSS也仍然可以充满乐趣。

Sass 3.0版在2010年5月释出,增添了与CSS兼容的SCSS语法,并且搭配Compass的强大社群支持,从此迈向了主流道路。笔者在2013年底参加了CSSDevConf,开场Keynote的知名设计师Zoe Gillenwater更建议所有网页设计师都应该开始学习Sass。会场上几乎没有人讲“CSS预处理器”,只问:“你的项目用了Sass吗?”时至今日,Chrome与Firefox的开发者工具都已经内建SCSS与LESS语法的支持。

同样是在2010年,当时我仍然在自己创办的设计公司Handlino服务。每次我遇到设计师朋友们,都会兴奋地向他们介绍Sass/Compass。只要我稍稍展示变量与图片精灵(第6章)功能,所有人都立刻想要改用Sass/Compass。但是当他们发现“天啊,这玩意得要会编写程序”,热情立刻就被浇熄了:“你别闹了,我不可能学会的!”

那年年底的一个周末,我的同事tka心血来潮,撰写出了一个跨平台的Sass/Compass图形界面工具,立刻受到大家的欢迎。我们决定将它命名为Compass.app(http://compass.kkbox.com/),将程序开源释出,并且在网络上贩卖预先编译好的软件。我们承诺捐出30%获利到Compass指定的慈善机构(Compass是一个慈善软件!),因而获得了Compass作者Chris Eppstein(也是本书作者)的支持。截至去年,我们已经累积捐出超过15000美金。以一个开源软件来说,这实在是个不可思议的成绩。

Sass已经释出了最新的3.3版,Compass也即将迈向1.0版这个重大的里程碑。很高兴知道《 Sass与Compass实战》即将出版的消息,更感谢李松峰老师与译者群投注的辛苦。相信你也能重拾撰写CSS的乐趣。

薛良斌,Compass.app & Fire.app 开发者
2014.3.15

2011年,W3CTech(http://w3ctech.com/)薛良斌(布丁)的“Sass & Compass”主题分享