对比less聊scss(1):scss特性

1、相同

less和sass在很多思想上是相同的,也都是通过转化css的方式通过浏览器来运行。

 

2、less缺点 = sass优点

通过对写less系列文章后的个人感受来讲,less的确也称不上是一种变成语言,虽然相比css要进步不少,多了变量、函数,包括判断、运算等处理逻辑,但这些仍然是在利用css的一些特性使其不能够完整的展现,比方说变量能进行简单的运算但无法做到字符串和属性的连接,循环也是通过函数的递归才能勉强完成,甚至这里的函数也只是选择器的一种表现形式,无法设置或获取返回值。

 

而sass相比less就乐观多了,它增加了很多的关键字,而通过这些关键字来区分声明函数、调用函数、判断、循环等等,这样就会避免和选择器的冲突而使语法更自由、更灵活。

 

3、简化操作

当然less也有其优点,sass也有其缺点:

less的优点在于调试方便,less官方提供了一套js驱动,网站只需要引入less.js,之后像引入css一样简单的引入less文件了,而浏览器的控制台也会展现出less转css后的样式代码,非常利于开发调试。并且less也可以批量转换css文件。

而在这一点sass就麻烦的多,只能通过编译的方式转换css,细想一下,如果你在修改一个box的top位置,每改一个值你都会刷新浏览器看看显示的位置对不对,如果是less或css只需要刷新页面就行了,而sass则需要先编译、甚至要选择覆盖原来的文件,然后再刷新页面,很麻烦。

 

虽然麻烦,但这也阻止不了我们学习sass的热情,既然像我这样的小人物都能看的见的问题,各方的大拿们定会推出相应的策略。

这就LibSass,首先LibSass并不是一个语言,也不是什么工具或者开发包之类的,而是在各种不同的开发语言中集成其中的sass环境。

而我们只需要了解Sass的语法,而LibSass我们需要哪个就用哪个,毕竟Sass语法是共通的。

这个网站就是介绍LibSass的:http://sass-lang.com/libsass

C:SassC
Go:gosassgo-sass and go_sass
Java: LibSass Maven plugin
JavaScript:sass.js
Lua: lua-sass
.NET:libsass-net
Node: node-sass
Perl: CSS::Sass and  Text-Sass-XS
PHP: older PHP version
Python: libsass-python  、 python-scss 、 pylibsass  、 SassPython
Ruby: sassc-ruby
Scala: Sass-Scala  

 

4、SCSS

说了那么多sass,标题上的为什么是scss?

scss是sass一个升级标准,它规范了sass很多看似不合理的结构,比如sass的选择器没有大括号,结尾没有分号,这看上去很乱,不是吗?不过scss解决这它,让它代码看上去更像css。并且scss并没有改变sass的核心用法。

 

所以,下面的几个文章我会以scss来讲解。

 

to be continue ...

posted @ 2017-05-10 14:58  冉夜  阅读(506)  评论(0编辑  收藏  举报