css预处理器–Sass语法
由于css没有变量、函数、运算符等特性,因此在编写它的时候会显得比较冗余和麻烦。所以就有css预处理器,它引入了变量、嵌套、运算、函数、继承等概念。让css的编写起来得心应手,并且后期维护性也高。
提到css预处理器,最常见的有Sass、Less CSS、Stylus。但听说Sass相对其他优势不少,因此,此篇就说Sass的语法。
一. 变量
如上所说的,Sass可以定义变量,并且这些变量都是以$开始,这样我们就可以直接在元素里引用变量,当需要更改元素css属性值时,只需改变变量即可全部替换。
简单的定义变量:
$width:1000px; |
定义属性和变量
$width:100px; |
二. 嵌套
传统的css中,当我们需要给box元素加width属性,并且给它的子元素content加height属性,还要给content里的a标签加颜色属性时,我们会这样写:
.box{width:;} |
但是在Sass中,它是这样做的,通过层层嵌套:
$width:1000px; |
三. 继承
所谓继承,也就是把定义的一个类,直接添加到作用类的css中。其实它完全可以通过组合class选择器来实现的,只不过这里存在着变量的概念。
.ptb10{padding:10px 0;} |
四.混入( Mixin)
在Sass中引入了Mixin这个一个功能,它就像javascript里面的函数,定义之后可以重复调用,并且还带有类似参数功能。如果引用时没带参数,则是使用默认参数。反之则使用实参。Mixin是通过@include来调用的:
@mixin ml($value:10px) { |
五. 运算符
曾经也在css使用过运算符,比如ie6下的expression表达式。但常规的css代码并不支持“+”、“-”、“*”、“/”这些运算符,而在Sass中,则引入运算符的处理:
.box{ |
六. 颜色函数
Sass定义了一些改变原有颜色的函数,以下列出主要几种,它们分别是:
$color1:#F90; |
七. css3浏览器前缀
因为css3的某些属性在不同浏览器需要加对应的前缀,这让我们在编写时显得繁琐。而Sass利用混合(mixin)即可做到让元素属性生成浏览器前缀,因此Sass这个功能是非常实用的。
@mixin transform($value:10deg) { |
sass还支持 if 的判断以及 for,while 的循环,但个人暂未对这些语法进行运用,故此处未列出。