css预处理器,生成文件后缀scss
,能够编译成css文件,被html引用,但不能替代css。css
gem install sass
sass t.scss
;sass t.scss t.css
;sass --style compressed t.scss t.css
sass --watch t.scss:t.css
或者 sass --watch app/t.css:pubic/stylesheet
$black:#000 //变量定义 border-#{$side}-radius: 5px; //变量嵌套在字符串中 #{} right:$argu*.3 //能够计算 div{a{...}}; //能够嵌套 p{border:{color:#000}} //属性能够嵌套,须要用冒号 a{&:hover{color:#000}} //能够用&引用父元素, /*!重要注释,压缩会保留 */
@extend
.class2 {@extend .class1;}
@minxin keymap($value: 10px){ //能够指定参数和缺省 left:$value } div{ @include keymap } //实例,用来生成浏览器前缀 @mixin rounded($vert, $horz, $radius: 10px) { border-#{$vert}-#{$horz}-radius: $radius; -moz-border-radius-#{$vert}#{$horz}: $radius; -webkit-border-#{$vert}-#{$horz}-radius: $radius; }
@import
等同于css的 @import
命令html
函数保留字须要加上@:@for
能够自定义函数web
@function pow($x,$y){ @if($x>$y){ @for $i from 0 through 1{ $x : 1; } }@else{ $y:1; } @return $x+$y; } $res:pow(1,0)+px; div{ @if(true){ font-size:$res; }@else{ font-size: 10px; } } //编译结果 div { font-size: 1px; }