SCSS是目前最流行的一门CSS方言。没办法,只能耍耍了…
基本用法
变量
1 | /* 定义变量 */ |
计算功能
1 | /* 类似cals计算,单位可以混用 */ |
嵌套
1 | /* 这种在小组件中再好不过了 */ |
属性嵌套
1 | p { |
在嵌套的代码块内,可以使用&引用父元素。比如a:hover伪类,可以写成:1
2
3a {
&:hover { color: #ffb3ff; }
}
注释
- 标准的CSS注释
/* comment */
,会保留到编译后的文件。 - 单行注释
// comment
,只保留在SASS源文件中,编译后被省略。 /*! comment */
表示这是”重要注释”。即使是压缩模式编译,也会保留这行注释,通常可以用于声明版权信息。
代码的重用
继承
SASS允许一个选择器,继承另一个选择器。比如,现有class1:1
2
3
4
5
6
7
8.class1 {
border: 1px solid #ddd;
}
/* class2要继承class1,就要使用@extend命令 */
.class2 {
@extend .class1;
font-size:120%;
}
Mixin
Mixin有点像C语言的宏(macro),是可以重用的代码块。1
2
3
4
5
6
7
8
9/* 使用@mixin命令,定义一个代码块(可以指定参数和缺省值) */
@mixin left($value: 10px) {
float: left;
margin-right: $value;
}
/* 使用@include命令,调用这个mixin */
div {
@include left(20px);
}
下面是一个mixin的实例,用来生成浏览器前缀:1
2
3
4
5
6
7
8@mixin rounded($vert, $horz, $radius: 10px) {
border-#{$vert}-#{$horz}-radius: $radius;
-moz-border-radius-#{$vert}#{$horz}: $radius;
-webkit-border-#{$vert}-#{$horz}-radius: $radius;
}
/* 调用 */
#navbar li { @include rounded(top, left); }
#footer { @include rounded(top, left, 5px); }
颜色函数
SASS提供了一些内置的颜色函数,以便生成系列颜色。
- lighten(#cc3, 10%) // #d6d65c
- darken(#cc3, 10%) // #a3a329
- grayscale(#cc3) // #808080
- complement(#cc3) // #33c
插入文件
1 | @import "path/filename.scss"; |
高级用法
条件语句
1 | @if lightness($color) > 30% { |
循环语句
1 | /* for循环 */ |
自定义函数
1 | @function double($n) { |