CSS 的辅助工具 增加了变量,嵌套,混合,导入 等高级功能
image.png
代码语言:javascript复制# Convert Sass to SCSS
$ sass-convert style.sass style.scss
# Convert SCSS to Sass
$ sass-convert style.scss style.sass
使用变量
变量声明
Sass变量声明和CSS属性的声明很像:
代码语言:javascript复制$highlight-color: #F90;
代码语言:javascript复制$nav-color: #F90;
nav {
$width: 100px;
width: $width;
color: $nav-color;
}
//编译后
nav {
width: 100px;
color: #F90;
}
变量引用
代码语言:javascript复制$highlight-color: #F90;
.selected {
border: 1px solid $highlight-color;
}
//编译后
.selected {
border: 1px solid #F90;
}
代码语言:javascript复制$highlight-color: #F90;
$highlight-border: 1px solid $highlight-color;
.selected {
border: $highlight-border;
}
//编译后
.selected {
border: 1px solid #F90;
}
代码语言:javascript复制$link-color: blue;
a {
color: $link_color;
}
//编译后
a {
color: blue;
}
嵌套CSS规则
代码语言:javascript复制#content article h1 { color: #333 }
#content article p { margin-bottom: 1.4em }
#content aside { background-color: #EEE }
代码语言:javascript复制#content {
article {
h1 { color: #333 } p { margin-bottom: 1.4em }
} aside { background-color: #EEE }
}
/* 编译后 */
#content article h1 { color: #333 }
#content article p { margin-bottom: 1.4em }
#content aside { background-color: #EEE }
父选择器标识符& 下面这种情况sass就无法正常工作:
代码语言:javascript复制article a {
color: blue;
:hover { color: red }
}
代码语言:javascript复制article a {
color: blue;
&:hover { color: red }
}
群组选择器的嵌套
代码语言:javascript复制.button, button {
margin: 0;
}
.container h1, .container h2, .container h3 { margin-bottom: .8em }
.container {
h1, h2, h3 {margin-bottom: .8em}
}
代码语言:javascript复制article {
~ article { border-top: 1px dashed #ccc }
> section { background: #eee }
dl > {
dt { color: #333 }
dd { color: #555 }
}
nav & { margin-top: 0 }
}
Sass 导入SASS文件 Sass的@import规则在生成css文件时就把相关文件导入进来
代码语言:javascript复制$link-color: blue;
$link-color: red;
a {
color: $link-color;
}
.blue-theme {@import "blue-theme"}
//生成的结果跟你直接在.blue-theme选择器内写_blue-theme.scss文件的内容完全一样。
.blue-theme {
aside {
background: blue;
color: #fff;
}
/*...*/
的注释语法
Sass 混合器 混合器使用@mixin标识符定义
代码语言:javascript复制@mixin rounded-corners {
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
border-radius: 5px;
}
notice {
background-color: green;
border: 2px solid #00aa00;
@include rounded-corners;
}
//sass最终生成:
.notice {
background-color: green;
border: 2px solid #00aa00;
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
border-radius: 5px;
}
放在@include被调用的地方
选择器继承 通过@extend语法实
代码语言:javascript复制//通过选择器继承继承样式
.error {
border: 1px solid red;
background-color: #fdd;
}
.seriousError {
@extend .error;
border-width: 3px;
}
使用sass编写清晰、无冗余、语义化的css