$side:left;.rounded { border-#{$side}-radius:5px;}
1.后缀名.sass和.scss;2.Sass有严格的缩进式语法规则,不带({})和分号(;),SCSS相似于CSS。
安装Sass
在线联系css
gem install sass
gem install compass
gem update sass
gem uninstall sasshtml
命令编译:sass --watch --style nested expanded compact compressed --sourcemap
GUI工具编译:koala Codekit
自动化编译:gulp
var gulp = require('gulp');var sass = require('gulp-sass');gulp.task('sass', function () { gulp.src('./scss/*.scss') .pipe(sass()) .pipe(gulp.dest('./css'));});gulp.task('watch', function() { gulp.watch('scss/*.scss', ['sass']);});gulp.task('default', ['sass','watch']);</pre>
单文件编译:sass path/style.scss:path/style.css
多文件编译:sass sass/:css/
监视文件变化:sass --watch path/style.scss:path/style.csssass
基础的文件命名以开头
导入时可忽略和scss扩展名
@import导入的sass文件在编译时会被合入新文件,@import导入的css文件不会koa
单行注释//不会被转译出来,标准的css注释方式则能够/**/ide
必须以
baseLineHeight: 5 !default;
全局变量、局部变量,当在局部范围(选择器内、函数内、混合宏内...)声明一个已经存在于全局范围内的变量时,局部变量就成为了**全局变量的影子**。基本上,**局部变量只会在局部范围内覆盖全局变量**。
特殊变量:
```css
.border-#{borderDirection} { border-#{borderDirection}: 1px solid #ccc;
}
body {
font: #{baseFontSize}/#{$baseLineHeight};
}函数
多值变量:全局变量:######嵌套(Nesting)选择器的嵌套、属性的嵌套、伪类嵌套
.box {
border: { //关键在于这个双引号
top: 1px solid red;
bottom: 1px solid green;
}
}工具
```.clearfix { &:before, &:after { content: ""; display: table; } &:after { clear: both; overflow: hidden; }}
@at-root 用来跳出选择器嵌套,至关于@at-root(without:rule) rule表示常规css
@at-root(without:media)
@at-root(without:support)
@at-root(without:all)
@at-root与&配合使用ui
1.声明混合宏
不带参数混合宏@mixin name {}
带参数混合宏@mixin name(
复杂的混合宏,混合宏会产生冗余代码,`涉及到变量的时候用,能够传参`
```
@mixin border-radius(radius...) {
@if length(shadow) >= 1 {
@include prefixer(box-shadow,shadow); } @else {
}
}
```编码
相同的合在一块儿,缺点是不能传参
不被@extend调用不产生代码
,相同的合在一块儿
嵌套输出nested
展开输出expanded
紧凑输出compact
压缩输出compressed
不支持GBK编码,须要将文件编码设置为utf-8
路径中不能用中文字符