标签:sass
ruby -v或者
ruby --version
gem install sass检测是否安装成功:
sass -v或
sass --version升级 Sass 版本:
gem update sass
#div width: 100px height: 200px另一种是以 .scss 作为扩展名,又出现了熟悉的花括号和分号:
#div { width: 100px; height: 200px; }选择哪一种语法?当然是后者。
sass 001.scss 001.css --style compressed或
sass --style compressed 001.scss 001.css如果只是使用:
sass 001.scss则会将编译后的 .css 输出显示在命令行。
$width: 100px; #div { width: $width; height: 200px; }
$width: 2px; #div { border : $width solid red; }如果变量需要嵌在字符串中,则变量需要放在 #{} 中:
$dir: top; #div { border-#{$dir} : 2px solid red; }
$link-color: red; #div { color: $link_color; }
#div { h1 { color: red; } article { p { color: green } } }编译后:
#div h1 { color: red; } #div article p { color: green; }父选择器标识符 & :
a { color: red; &:hover { color: green; } }编译后:
a { color: red; } a:hover { color: green; }
a { color: red; p & { color: green; } }编译后:
a { color: red; } p a { color: green; }群组选择器的嵌套:
aritcle { h1, h2, h3, h4 {color: #ccc} }编译后:
aritcle h1, aritcle h2, aritcle h3, aritcle h4 { color: #ccc; }
aritcle, aside { h1, h2 {color: #ccc} }编译后:
aritcle h1, aritcle h2, aside h1, aside h2 { color: #ccc; }组合选择器:> + ~,无需使用父选择器标识符 & ;可以用在外层选择器的后边,也可以用在里层选择器的前边:
aritcle { > section {color: red} + section {color: green} ~ section {color: blue} dl > { dt {color: #ccc} dd {color: #666} } }编译后:
aritcle > section { color: red; } aritcle + section { color: green; } aritcle ~ section { color: blue; } aritcle dl > dt { color: #ccc; } aritcle dl > dd { color: #666; }属性也可以嵌套,嵌套规则是:用 ":" 把属性名从中划线 "-" 的地方断开,在根属性后边添加一个冒号,紧跟一个 "{}" 块,把子属性部分写在 "{}"块中:
nav { margin: { top: 10px; left: 5px; } }编译后:
nav { margin-top: 10px; margin-left: 5px; }
nav { margin: 15px { top: 10px; left: 5px; } }编译后:
nav { margin: 15px; margin-top: 10px; margin-left: 5px; }
$width: 10px; $width: 20px !default; $height: 10px; $height: 20px; #div { width: $width; height: $height; }编译后:
#div { width: 10px; height: 20px; }
@mixin rounded-corners { -moz-border-radiux: 5px; -webkit-border-radius: 5px; border-radiux: 5px; } #div { color: red; @include rounded-corners; }编译后:
#div { color: red; -moz-border-radiux: 5px; -webkit-border-radius: 5px; border-radiux: 5px; }在混合器中也可以使用 CSS 规则:
@mixin rounded-corners { -moz-border-radiux: 5px; -webkit-border-radius: 5px; border-radiux: 5px; a { color: red; } & span { color: blue; } } #div { color: red; @include rounded-corners; }编译后:
#div { color: red; -moz-border-radiux: 5px; -webkit-border-radius: 5px; border-radiux: 5px; } #div a { color: red; } #div span { color: blue; }可以给混合器传参,参数可以有默认值:
@mixin rounded-corners($size, $color, $color2: red) { -moz-border-radiux: $size; -webkit-border-radius: $size; border-radiux: $size; a { color: $color; } & span { color: $color2; } } #div { color: red; @include rounded-corners(10px, green); }编译后:
#div { color: red; -moz-border-radiux: 10px; -webkit-border-radius: 10px; border-radiux: 10px; } #div a { color: green; } #div span { color: red; }
.error { color: red; font-size: 16px; } .syntax { background-color: blue; @extend .error; }编译后:
.error, .syntax { color: red; font-size: 16px; } .syntax { background-color: blue; }
div + p divp "div" + p "divp" div + "p" divp
5em*4px 20em*px 16px/1em 16px/em这有什么用呢?可以用在单位转换,如 16px/em 代表 1em 是 16px。
$var: 1px; $var/2px; (1px/2px); 1 + 1px/2px;
< <= > >= ==对于小于和大于,只用于数字;对于 == 则可以用于全部类型。
rgb($green: 127, $blue: 127, $red: 255)
@function width($w) { @return $w * 100px; }
@for $i from 1 to 5 { .box-#{$i} { width: 100px * $i; } }编译后:
.box-1 { width: 100px; } .box-2 { width: 200px; } .box-3 { width: 300px; } .box-4 { width: 400px; }
@for $i from 1 through 5 { .box-#{$i} { width: 100px * $i; } }编译后:
.box-1 { width: 100px; } .box-2 { width: 200px; } .box-3 { width: 300px; } .box-4 { width: 400px; } .box-5 { width: 500px; }可以看出这两种语法的差异在于要不要包括最后一个数字。
@each $item in home, about, archive { nav .#{$item} { background-image: url(/images/#{$item}.png); } }编译后:
nav .home { background-image: url(/images/home.png); } nav .about { background-image: url(/images/about.png); } nav .archive { background-image: url(/images/archive.png); }@each 指令中的列表可以用逗号分开,也可以用空格分开。
$flag: 2; .nav { @if $flag == 1 { width: 100px; } @else if $flag == 2 { width: 200px; } @else { width: 300px; } }编译后:
.nav { width: 200px; }
标签:sass
原文地址:http://blog.csdn.net/wozaixiaoximen/article/details/45269719