最近打算学习Sass,正在阅读《Sass与Compass实战》。
收集一下网上学的知识。

有了解或者已经使用过的童鞋,都知道这两种这两年兴起的css预处理语言,赋予了动态语言的特性,如变量、 继承、 运算、 函数,弥补了css比较古板单一的缺点。这意味着通过一些预编译的语言可以把css写得更灵活,更动态化,从而提高前端的开发效率。另外很重要的一点是,他们的语法都是基于css的,让你在使用的时候减少陌生感,降低学习成本。

现在问题来了,既然有两个,那肯定会问,less和sass做比较,他们的优缺点是什么呢?只有搞懂了区别,才能在不同的项目用不同的技术,这就是面试的考察点。

LESS和Sass两者之间比较突出的不同就是实现方式不一样,实现方式也可以理解为编译。LESS是基于JavaScript运行,所以LESS是在客户端处理。而Sass是基于Ruby的,主要是在服务器端处理的。不管是哪个,这两者都是可以看成CSS的高级语言,对于程序员来说,SASS的功能要远比LESS强大,基本可以说是一种真正的编程语言了,而对于设计师,LESS则相对清晰明了。

为什么Sass比LESS要好

Sass有很多可用的方法和逻辑。例如:条件和循环语句。LESS也可以做到,但不是很高效且不直观。像LESS一样,Sass也内置了一些非常友好的函数,像颜色,数字,还有变量列表。Sass用户可以使用功能强大的Compass库。这些库LESS用户也可以用,但并不完全一样,因为这是由一个庞大的社区来共同维护的。Compass有非常强大的特性,像自动生成图片切片(CSS Sprites),传统浏览器支持,还有对CSS3的跨浏览器支持等。
但是,在用Sass和Compass时也会有另外的问题,这些似乎是人们在使用Sass时遇到的最大问题:

》建立Ruby的运行环境会产生的工作量;
》对命令行的恐惧;
》切换到另一个工具所产生的不便和额外的时间消耗;

上面都是一些基本理论,但是不一定适合谁谁,真正在自己的工作项目中用到了,才会有更深刻的体会。