SASS简介
SASS:
引言
众所周知
css
并不能算是一们真正意义上的“编程”语言,它本身无法未完成像其它编程语言一样的嵌套、继承、设置变量等工作。为了解决css
的不足,开发者们想到了编写一种对css
进行预处理的“中间语言”,可以实现一些“编程”语言才有的功能,然后自动编译成css供浏览识别,这样既一定程度上弥补了css
的不足,也无需一种新的语言来代替css
以供浏览器识别。于是css
预处理语言SASS
就应运而生了。关于sass
sass
是最早的css
预处理语言,有比less
更为强大的功能。但因其一开始的缩进式语法并不能被开发者们接受,所以使用率不高,不过由于其强大的功能和Ruby on Rails
的大力推动,逐渐被更多开发者使用。
sass
是采用的Ruby
语言编写的一款css
预处理语言,它诞生于2007年,是最早成熟css
预处理语言。最初它是为了配合haml
而设计的,因此有着和haml
一样的缩进式风格。
sass
从第三代开始,放弃了缩进式风格,并且完全向下兼容普通的css
代码,这一代的sass
也被称为scss
。
安装
sass
基于Ruby
语言开发而成,因此安装sass
前需要安装Ruby。(注:mac下自带Ruby无需在安装Ruby!)
安装Ruby并添加环境变量
通过RubyGem
安装SASS
和Compass
SASS基本使用
Ruby SASS
编译sass
sass
编译有很多种方式,如命令行编译模式、sublime插件SASS-Build
、编译软件koala
、前端自动化软件codekit
、Grunt打造前端自动化工作流grunt-sass
、Gulp打造前端自动化工作流gulp-ruby-sass
等。
命令行编译
//单文件转换命令
sass input.scss output.css
//单文件监听命令
sass --watch input.scss:output.css
//如果你有很多的sass文件的目录,你也可以告诉sass监听整个目录:
sass --watch app/sass:public/stylesheets
命令行编译配置选项;
命令行编译sass
有配置选项,如编译过后css
排版、生成调试map、开启debug信息等,可通过使用命令sass -v
查看详细。我们一般常用两种--style``--sourcemap
。
//编译格式
sass --watch input.scss:output.css --style compact
//编译添加调试map
sass --watch input.scss:output.css --sourcemap
//选择编译格式并添加调试map
sass --watch input.scss:output.css --style expanded --sourcemap
//开启debug信息
sass --watch input.scss:output.css --debug-info
--style
表示解析后的css
是什么排版格式;
sass内置有四种编译格式:nested
、expanded
、compact
、compressed
。四种编译排版演示
//未编译样式 .box { width: 300px; height: 400px; &-title { height: 30px; line-height: 30px; } }
nested 编译排版格式
/*命令行内容*/ sass style.scss:style.css --style nested /*编译过后样式*/ .box { width: 300px; height: 400px; } .box-title { height: 30px; line-height: 30px; }
expanded 编译排版格式
/*命令行内容*/ sass style.scss:style.css --style expanded /*编译过后样式*/ .box { width: 300px; height: 400px; } .box-title { height: 30px; line-height: 30px; }
compact 编译排版格式
/*命令行内容*/ sass style.scss:style.css --style compact /*编译过后样式*/ .box { width: 300px; height: 400px; } .box-title { height: 30px; line-height: 30px; }
compressed 编译排版格式
/*命令行内容*/ sass style.scss:style.css --style compressed /*编译过后样式*/ .box{width:300px;height:400px}.box-title{height:30px;line-height:30px}
--sourcemap
表示开启sourcemap
调试。开启sourcemap
调试后,会生成一个后缀名为.css.map
文件。