Compass是sass延伸出來的工具,可以將sass或scss的語法compile成CSS語法
使用sass的好處就是可以以程式的角度去撰寫CSS(變數、巢狀、迴圈、繼承)
由於Compass是用Ruby開發的,所以需要先安裝Ruby
接著再用gem安裝Compass
gem install compass
建立Compass專案
compass create project_name
建立完後,Compass會產生一些檔案,其中config.rb是專案的設定檔,產生完後先手動把設定檔裡的資料夾建一建
接著就可以在sass目錄裡開發(注意:如果使用scss的人,檔案名稱必須命名為xxx.scss,而sass則要命名為sass,不然compile會出錯)
編輯完後到專案根目錄下compile
compass compile
成功後config.rb的css路徑裡就會有css檔產生出來囉
scss基本語法
變數及運算
$width : 100px; $height : 100px; #sass { width:$width - 50px; height:$height; }
巢狀
<div id="doc"> <div class="doc_inner"> </div> </div>
$width : 100px; $height : 100px; #doc { width:$width; height:$height; background:red; .doc_inner { width:$width - 50px; height:$height - 50px; background:blue; } }
父選擇器(Parent Selector)
a { color:red; &:hover { color:blue; } }
Mixins
@mixin hover-link { color:red; &:hover { color:blue; } } a { @include hover-link; }
Mixins加入參數
@mixin hover-link($color1:red, $color2:blue) { color:$color1; &:hover { color:$color2 } } a { @include hover-link($color2:green); }
繼承
$width : 100px; $height : 100px; #sass { width:$width; height:$height; background:red; } #css { @extend #sass;
條件判斷
$width : 100px; $height : 100px; #sass { @if $width == 10px { background:red; } @else { background:green; } width:$width; height:$height; }
迴圈
@for $i from 1 through 5 { .item-#{$i} { width: 100px * $i; } }
$i : 1; @while $i <= 5 { .item-#{$i} { width: 100px * $i; } $i : $i + 1; }
引入(import)
a.scss
#sass { background:red; }
b.scss
#sass { width:100px; height:100px; }
test.scss
@import "a","b";