成熟、穩定、強大的專業級CSS擴展語言css
sass是基於Ruby語言開發而成,所以須要先安裝Ruby。網上有不少安裝教程,這裏省略。。。sass
Ruby 是一種開源的面向對象程序設計的服務器端腳本語言服務器
koala(推薦)框架
sass的變量必須是$開頭,後面緊跟變量名,而變量值和變量名之間就須要使用冒號(:)分隔開(就像CSS屬性設置同樣),若是值後面加上!default則表示默認值。koa
//sass style //------------------------------- $fontSize: 12px; body{ font-size:$fontSize; } //css style //------------------------------- body{ font-size:12px; }
選擇器嵌套:spa
在一個選擇器中嵌套另外一個選擇器來實現繼承,從而加強了sass文件的結構性和可讀性。.net
在選擇器嵌套中,可使用&
表示父元素選擇器設計
//sass style //------------------------------- #top_nav{ line-height: 40px; li{ float:left; } a{ color: #fff; &:hover{ color:#ddd; } } } //css style //------------------------------- #top_nav{ line-height: 40px; } #top_nav li{ float:left; } #top_nav a{ color: #fff; } #top_nav a:hover{ color:#ddd; }
屬性嵌套:code
有些屬性擁有同一個開始單詞,如border-width,border-color都是以border開頭。對象
//sass style //------------------------------- .fakeshadow { border: { style: solid; left: { width: 4px; color: #888; } right: { width: 2px; color: #ccc; } } } //css style //------------------------------- .fakeshadow { border-style: solid; border-left-width: 4px; border-left-color: #888; border-right-width: 2px; border-right-color: #ccc; }
sass的導入(@import
)規則和CSS的有所不一樣,編譯時會將@import
的scss文件合併進來只生成一個CSS文件。可是若是你在sass文件中導入css文件如@import 'reset.css'
,那效果跟普通CSS導入樣式文件同樣,導入的css文件不會合併到編譯後的文件中,而是以@import
方式存在。
全部的sass導入文件均可以忽略後綴名.scss
。通常來講基礎的文件命名方法以_開頭,如_mixin.scss
。這種文件在導入的時候能夠不寫下劃線,可寫成@import "mixin"
。
sass有兩種註釋方式,一種是標準的css註釋方式/* */
,另外一種則是//
雙斜杆形式的單行註釋,不過這種單行註釋不會被轉譯出來。
使用 @mixin 標識符定義,經過 @include 來使用混合器:
//sass style //---------------------------- @mixin no-bullets { list-style: none; li { list-style-image: none; list-style-type: none; margin-left: 0px; } } ul.plain { color: #444; @include no-bullets; } //css style //------------------------------ ul.plain { color: #444; list-style: none; } ul.plain li { list-style-image: none; list-style-type: none; margin-left: 0px; }
經過 @extend 語法實現:
//sass style //---------------------------- .error{ color: red; } .msg{ @extend .error; font-size: 20px; } //css style //---------------------------------- .msg{ color: red; font-size: 20px; }
SASS和SCSS的關係與區別:
sass和scss實際上是一種東西,都是Sass的語法格式。scss是Sass3引入的新語法。二者不一樣之處有如下兩點:
一、文件擴展名不一樣,Sass是以「.sass」後綴爲擴展名,而Scss是以「.scss」後綴爲擴展名。
二、語法書寫方式不一樣,Sass是以嚴格的縮進式語法規則來寫,不帶大括號({})和分號(;),而Scss的語法書寫和咱們的CSS語法書寫方式很是相似。
//Sass語法 $font-stack: Helvetica, sans-serif //定義變量 $primary-color: #333 //定義變量 body font: 100% $font-stack color: $primary-color //Scss語法 $font-stack: Helvetica, sans-serif; $primary-color: #333; body { font: 100% $font-stack; color: $primary-color; }