sass與scss基本是相同的,惟一的不一樣是,須要使用分號和花括號而不是換行和縮進。css
// sass 寫法 #header{ width: 30%; background-color: red; } // scss寫法 #header width: 30% background-color: red
$red: red; div{ color: $red } $side: top; div{ padding-#{$side}: 10px; }
div{ margin: (20px/2); padding: 5px + 2px; width: 10 * 10% }
div{ p{ color: red; } }
編譯爲sass
div p{ color: red; }
div{ border:{ width: 1px; color: #ccc; style: solid; } }
注意border後面的冒號!!!ide
編譯爲函數
div{ border-width: 1px; border-color: #cccccc; border-style: solid; }
// 在嵌套的代碼塊內,能夠使用&引用父元素 div{ &:hover{ background: red } }
/*! 重要註釋! */
.box1{ border: 1px solid #ddd; }
box2要繼承box1,就要使用@extend命令url
.box2 { @extend .box1; font-size: 12px; }
@mixin left { float: left; margin-left: 10px; }
div{ @include left; }
@mixin left($value: 10px) { float: left; margin-right: $value; }
div{ @include left(20px); }
lighten(#cc3, 10%) // #d6d65c darken(#cc3, 10%) // #a3a329 grayscale(#cc3) // #808080 complement(#cc3) // #33c
// @if能夠用來判斷 p{ @if 1 + 1 == 2 { border: 1px solid; } @if 5 < 3 { border: 2px dotted; } } // 配套的還有@else命令 @if lightness($color) > 30% { background-color: #000; } @else { background-color: #fff; }
// sass支持for循環 @for $i from 1 to 10 { .border-#{$i} { border: #{$i}px solid blue; } } // 固然也支持while循環 $i: 6; @while $i > 0 { .item-#{$i} { width: 2em * $i; } $i: $i - 2; } // each命令,做用與for相似 @each $member in a, b, c, d { .#{$member} { background-image: url("/image/#{$member}.jpg"); } }
// SASS容許用戶編寫本身的函數 @function double($n) { @return $n * 2; } #sidebar { width: double(5px); }