什么是SASS
sass是“css預處理器”中的一員,所謂“css預處理器”就是用一種專門的編程語言衅谷,進行網(wǎng)頁樣式設計慕爬,然后再編譯成正常的css文件。
sass就是在css語法的基礎上增加了變量 (variables)茵典、嵌套 (nested rules)湘换、混合 (mixins)、導入 (inline imports) 等高級功能统阿,這些拓展令 CSS 更加強大與優(yōu)雅彩倚。使用 Sass 以及 Sass 的樣式庫(如Compass)有助于更好地組織管理樣式文件,以及更高效地開發(fā)項目扶平。
sass有兩種文件格式帆离,文件后綴名分別為.scss和.sass
其中.scss文件和一般的.css文件格式一樣,都有花括號和分號结澄,僅僅只是在css的語法上進行了拓展哥谷;而.sass文件使用 “縮進” 代替 “花括號” 表示屬性屬于某個選擇器,用 “換行” 代替 “分號” 分隔屬性麻献∶峭祝縮進格式也可以使用 Sass 的全部功能,只是與 SCSS 相比個別地方采取了不同的表達方式勉吻,具體請查看the indented syntax reference监婶。
基本語法
*下文中的涉及到的例子均為.sass文件格式
變量($)
變量有塊級作用域(局部變量)和全局作用域(全局變量)之分,也可通過!global將塊級作用域里面的局部變量轉(zhuǎn)化為全局變量齿桃;
*這里遇到了一個坑惑惶,在.sass文件中不要在!global后面直接添加注釋,編譯會報錯短纵,但是在.scss文件中在!global后面直接添加注釋集惋,編譯卻不會報錯,估計是因為.scss文件中有;可以明確區(qū)分代碼和注釋踩娘,而.sass中不能明確區(qū)分什么是注釋什么是代碼
如果要將變量插入到字符串中刮刑,可以使用插值符號——#{}
嵌套(選擇器嵌套&屬性嵌套&父選擇器)
運算
SASS還支持運算的功能
加減乘除喉祭、取整等運算 (+, -, *, /, %),同時雷绢,如果有需要它會在不同單位間轉(zhuǎn)換值泛烙。
比較特殊的是/運算,根據(jù)不同情況可以處理為除法運算或者僅僅只是分隔數(shù)字的作用
以下三種情況/將被視為除法運算符號:
如果值翘紊,或值的一部分蔽氨,是變量或者函數(shù)的返回值
如果值被圓括號包裹
如果值是算數(shù)表達式的一部分
但如果希望使用變量,同時又要確保/不做除法運算而是完整地編譯到 CSS 文件中帆疟,只需要用#{}插值語句將變量包裹鹉究。
除了數(shù)值的運算還有顏色值的計算
顏色值的運算是分段計算進行的,也就是分別計算紅色踪宠,綠色自赔,以及藍色的值
不過感覺一般實際項目中很少用到顏色值的計算,不過覺得有趣柳琢,所以就簡單提一下
混合指令 (Mixin Directives)
混合指令(Mixin)用于定義可重復使用的樣式绍妨,通過@mixin來定義,@include來調(diào)用柬脸,同時支持參數(shù)的指定他去,參數(shù)若是沒有傳時,可以使用默認值倒堕,或者明確要傳入哪一個特定參數(shù)灾测。
繼承 ( @extend )
sass支持一個選擇器繼承另一個選擇器的所有樣式。
插入文件( @import )
Sass 拓展了@import的功能垦巴,允許其導入 SCSS 或 Sass 文件媳搪。被導入的文件將合并編譯到同一個 CSS 文件中,另外魂那,被導入的文件中所包含的變量或者混合指令 (mixin) 都可以在導入的文件中使用。
若導入的文件后綴名為.css文件稠项,則import作為普通的css語句涯雅。
若導入的文件后綴名為.sass或.scss,則被導入的文件將與當前文件合并展运,同時活逆,@import "foo"或者@import "foo.sass"導入的效果都是一致的,沒有指定拓展名拗胜,Sass 將會試著尋找文件名相同蔗候,拓展名為.scss或.sass的文件并將其導入。
注釋
Sass 支持標準的 CSS 多行注釋/* */埂软,以及單行注釋//锈遥,前者會被完整輸出到編譯后的 CSS 文件中,而后者則不會。
高級用法
sass支持的數(shù)據(jù)類型中所灸,除了數(shù)字丽惶,字符串,顏色爬立,布爾型钾唬,空值,
還有:
數(shù)組 (list)侠驯,用空格或逗號作分隔符抡秆,1.5em 1em 0 2em, Helvetica, Arial, sans-serif
maps, 相當于 JavaScript 的 object,(key1: value1, key2: value2)
于是我們便可以使用@each這樣的高級用法
@each
@for
@if
SASS常用語法就總結(jié)到這里了吟策,都是一些比較常見儒士,日常開發(fā)中能用到的語法。
在總結(jié)的過程中踊挠,對我也是一個很好的鞏固的過程乍桂,畢竟組織成文字和小demo的形式更容易記住。
最后效床,個人認為用的合適才是發(fā)揮了sass帶來的便利睹酌,不要為了用sass而用sass,一不小心反而會使得代碼變得復雜剩檀。
- 文/潘曉璐 我一進店門砸民,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人奋救,你說我怎么就攤上這事岭参。” “怎么了尝艘?”我有些...
- 文/不壞的土叔 我叫張陵演侯,是天一觀的道長。 經(jīng)常有香客問我背亥,道長秒际,這世上最難降的妖魔是什么悬赏? 我笑而不...
- 正文 為了忘掉前任,我火速辦了婚禮程癌,結(jié)果婚禮上舷嗡,老公的妹妹穿的比我還像新娘。我一直安慰自己嵌莉,他們只是感情好进萄,可當我...
- 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著锐峭,像睡著了一般中鼠。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上沿癞,一...
- 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼揖铜!你這毒婦竟也來了茴丰?” 一聲冷哼從身側(cè)響起,我...
- 正文 年R本政府宣布,位于F島的核電站钟病,受9級特大地震影響萧恕,放射性物質(zhì)發(fā)生泄漏刚梭。R本人自食惡果不足惜,卻給世界環(huán)境...
- 文/蒙蒙 一票唆、第九天 我趴在偏房一處隱蔽的房頂上張望朴读。 院中可真熱鬧,春花似錦走趋、人聲如沸衅金。這莊子的主人今日做“春日...
- 文/蒼蘭香墨 我抬頭看了看天上的太陽氮唯。三九已至,卻和暖如春姨伟,著一層夾襖步出監(jiān)牢的瞬間惩琉,已是汗流浹背。 一陣腳步聲響...
推薦閱讀更多精彩內(nèi)容
- 3.移動端前端基礎架構(gòu) 15:16單詞釋義:a)mkdir: make directory 建立一個新的子目錄(...
- [toc] 前言 本文所有的演示都是基于Win10操作系統(tǒng)和橙。 關于Sass 1.定義 Sass的學名叫“CSS預處...
- CSS Preprocess Different 在前端界晰搀,有三大 CSS 預處理器,分別是 SASS(SCSS)...