标签: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