Sass / SCSS 筆記:如何利用變數管理重複設定值?
使用 Sass / SCSS 管理 CSS 內容,除了能夠撰寫巢狀式語法架構外,還有像是變數、Mixin 等功能,可以幫助我們管理重複的 CSS 設定值或是語法,不但能夠優化 CSS 空間,也能夠增加日後開發的方便性。這篇文章就先來探討 Sass / SCSS 的「變數」。
什麼是變數?
在 Sass / SCSS 以及其它程式語言的世界裡,都是很好用而且非常重要的存在,變數就好比說,它是一個容器(例如碗),你可以命名這個容器的用途(比如小明的碗),可以在裡面裝一些東西。(例如白米飯),而在 Sass / SCSS 與其它程式語言,就會利用變數來放置程式計算邏輯、或是一些會被利用的數值或是字串。
在 Sass / SCSS 變數該如何宣告?
1 |
|
基本上可以看到 Sass 與 SCSS 指定變數的差別在於 Sass 不用且不能加分號,而 SCSS 寫法則與 CSS 一樣,需要用分號區隔前後屬性。這部分說明,可以回去複習上一篇「更便利於撰寫與管理 CSS 的工具 - Sass / SCSS,如何使用、編譯?」。
除了以上差異之外,基本上兩者宣告方式大同小異,首先要設定變數名稱,並在變數名稱前加上 $
字號,其實這個概念很像是設定類別選擇器樣式那樣,會在類別名稱前加上 .
作為區隔。
設定完變數名稱後,後面會加上冒號與空格,再填入設定值,如此以來就完成了變數的宣告與指定值。
來段「顏色」與「字體大小」的範例吧
以前我們可能是這樣設計 CSS 的:
CSS
1 |
|
HTML
1 |
|
我希望網站主視覺是粉紅色、按鈕與副標題文字大小要有 20px。但萬一老闆或是客戶突然想要改變顏色跟文字大小,雖然說現在編輯器都有尋找與取代功能,但是當有成千上萬個設定值要修改時,還是會覺得很麻煩吧?
這時使用變數的好處來了。此時,你就能利用 Sass / SCSS 變數將語法改寫成這樣:
Sass / SCSS
1 |
|
HTML
1 |
|
如此一來,我只要更改變數的設定值,我就能夠瞬間更改所有套用此變數的屬性,是不是方便了許多?
我有寫一個範例放置在 codePen 上,大家可以點擊「Sass / SCSS 變數範例」來動手操作看看。當然,還有許多不同的使用情境可以運用到變數,大家也可以思考還有哪部分能夠利用變數最佳化 CSS 語法。
宣告變數請盡可能寫在前面
Sass / SCSS 的編譯方式是由上而下編譯的,因為這個特性,我們必須把變數放置在使用變數之前。以下列這個錯誤例子來舉例:
1 |
|
這邊就不舉例 Sass 範例了,大家去嘗試這個範例的話可以發現是跑不動的,原因是 Sass / SCSS 由上而下編譯時,.btn-secondary 雖然想要取得 $orange 的設定值,但因為此時還沒有編譯到 $orange 這個變數,因此這時是無法取得 $orange 的設定值的。
因此在使用變數時,請盡可能將變數宣告移至最前面,如此一來比較能夠確保所宣告的變數在使用時,已經都被 Sass / SCSS 編譯器進行編譯。
後記
其實這是我第二次寫這篇文章了,本來是星期四或五要發佈,結果一個 GG,電腦當機!!然後 Typora(線下 Markdown)不但沒記錄到存檔,內容還直接給我通通不見……我直接整個無言 QQ(而且我還隨時都在按 Ctrl + S 儲存啊!!)
無奈之餘還是要將文章給發出來啊,所以大家如果看到這篇,還請多多支持啦,這是我用淚水刻出來的文章(QQ
雖然難過,不過我自己是覺得這篇寫得比上一次還好(自己說 XD),頓時也沒這麼難過了(?)下一篇就會提到 Mixin 的部分了,敬請期待囉,也希望電腦給力點啊!
本站所有文章除特別聲明外,均採用 BY-NC-SA 許可協議。轉載請註明出處!