1.背景介绍
CSS 是一门非程序式语言,没有变量、函数、SCOPE(作用域),需要书写大量看似没有逻辑的代码,不方便维护及扩 展,不利于复用,尤其对于非前端开发工程师来讲,往往会因为缺少 CSS 编写经验而很难写出组织良好且易于维护的 CSS 代码。为了方便前端开发的工作量,出现了sass和less.
2.知识解剖
Sass背景介绍
Sass是对CSS(层叠样式表)的语法的一种扩充,诞生于2007年,最早也是最成熟的一款CSS预处理器语言,它 可以使用变量、常量、嵌套、混 入、函数等功能,可以更有效有弹性的写出CSS。Sass最后还是会编译出合法 的CSS让浏览器使用,也就是说它本身的语法并不太容易让浏览器识别,因为 它不是标准的CSS格式,在它的 语法内部可以使用动态变量等,所以它更像一种极简单的动态语言。 其实现在的Sass已经有了两套语法规则:一个依旧是用缩进作为分隔符来区分代码块的;另一套规则和CSS一 样采用了大括号({})作为分隔符。后一种语法规则又名SCSS,在Sass3之后的版本都支持这种语法规则。
SASS是什么?
Sass(Syntactically Awesome Style Sheets)是一个相对新的编程语言,Sass为web前端开发而生,可以用它来定 义一套新的语法规则和函数,以加强和提升CSS。通过这种新的编程语言,你可以使用最高效的方式,以少量的代 码创建复杂的设计。它改进并增强了CSS的能力,增加了变量,局部和函数这些特性。而这只使Sass一部分利器!
SASS的安装
SASS是Ruby语言写的,但是两者的语法没有关系。不懂Ruby,照样使用。只是必须先安装Ruby,然后再安装SASS。
在系统上运行来安装Ruby。添加Ruby的bin文件夹到PATH用户变量和系统变量以使用 gem 命令工作,第二个和第三个框去要打勾。
在系统中打开命令提示符,然后输入以下命令行
gem source -ahttp://rubygems.org/
gem sources -ahttp://ruby.taobao.org/
gem install sass
出现屏幕下方信息,表示SASS 安装成功,(国内线路不稳定,需要多试几次)。
SASS使用-文件明后缀
sass有两种后缀名文件:一种后缀名为sass,不使用大括号和分号;另一种就是我们这里使用的scss文件,这种和 我们平时写的css文件格式差不多,使用大括号和分号。而本教程中所说的所有sass文件都指后缀名为scss的文件。 在此也建议使用后缀名为scss的文件,以避免sass后缀名的严格格式要求报错。
sass的导入
sass的导入(@import)规则和CSS的有所不同,编译时会将@import的scss文件合并进来只生成一个CSS文件。但是如 果你在sass文件中导入css文件如@import 'reset.css',那效果跟普通CSS导入样式文件一样,导入的css文件不会 合并到编译后的文件中,而是以@import方式存在。 所有的sass导入文件都可以忽略后缀名.scss。一般来说基础的文件命名方法以_开头,如_mixin.scss。这种文件在 导入的时候可以不写下划线,可写成@import "mixin"
sass的导入
sass的注释
LESS的背景介绍
(2009年开源的一个项目,受Sass的影响较大,但又使用CSS的语法,让大部分开发者和设计师更容易上手。LESS提供了 多种方式能平滑的将写好的代码转化成标准的CSS代码。
LESS的介绍
第一个,less是单独的一种文件,可以理解为css的升级版,完全按照css写也没问题,不过它提供了很多便利的东 西, 可以省好多代码量。第二个,html只认css,所以需要配套一些软件将less解析成css,引用时候,直接引用css 就好。gulp,koala 都是常用的,Koala好像简单且方便一点。 多种方式能平滑的将写好的代码转化成标准的CSS代码。
LESS的安装
LESS的安装和Sass安装有所不同,他不需要依赖于Ruby环境,就能直接安装使用。不过LESS安装分为两种:客户端和 服务器端安装。
less客户端安装
我们可以直接在客户端使用“.less”(LESS源文件),只需要在官网载一个Javascript脚本文件主“less.js”,然后 在我们需要引入LESS源文件的HTML的中加入如下代码。
需要注意的是:在引入“.less”文件中,“link”的“rel”属性要设置为“stylesheet/less”。还有更重要的一 点需要注意的是:LESS源文件一定要在“less.js”引入之前引入,这样才能保证LESS源文件正确编译解析。到这里就已经安装好了。
less的使用
使用less,css文件的后缀名需要改为.less在html页面中加入下面代码。
less定义变量
less样式嵌套
less嵌套规则
名称更为简短,并修改时易查找。
less样式的传参
4.常见问题
SASS/SCSS、LESS有什么区别?
4.解析问题
1.编译环境不一样
Sass的安装需要Ruby环境,是在服务端处理的,而Less是需要引入less.js来处理Less代码输出css到浏览器,也可 以在开发环节使用Less,然后编译成css文件,直接放到项目中,也有 Less.app、SimpleLess、CodeKit.app这样 的工具,也有在线编译地址。
2.变量符不一样,LESS是@,而SCSS是$,而且变量的作用域也不一样。
3.输出设置,LESS没有输出设置,SASS提供4中输出选项:NESTED, COMPACT, COMPRESSED 和 EXPANDED。
输出样式的风格可以有四种选择,默认为nested
nested:嵌套缩进的css代码
expanded:展开的多行css代码
compact:简洁格式的css代码
compressed:压缩后的css代码
4.SASS支持条件语句,可以使用IF{}ELSE{},FOR{}循环等等。而LESS不支持。
5.引用外部CSS文件。
scss引用的外部文件命名必须以_开头, 如下例所示:其中_test1.scss、_test2.scss、_test3.scss文件分别设置 的h1 h2 h3。文件名如果以下划线_开头的话,Sass会认为该文件是一个引用文件,不会将其编译为css文件。
6.SASS和LESS的工具库不同。
Sass有工具库Compass, 简单说,Sass和Compass的关系有点像Javascript和jQuery的关系,Compass是Sass的工具库。 在它的基础上,封装了一系列有用的模块和模板,补充强化了Sass的功能。 Less有UI组件库Bootstrap,Bootstrap是web前端开发中一个比较有名的前端UI组件库,Bootstrap的样式文件部分 源码就是采用Less语法编写。
5.参考文献
参考一:SASS入门教程及用法指南
参考二:深入理解CSS块级(block)元素和内联(inline)元素
参考三:初步认识 LESS
参考四:sass、less和stylus的安装使用和入门实践
参考五:sass语法
参考六:less的一些用法整理
参考七:LESS使用简介
网友评论