Sass-基本用法
- 變數
- 計算
- @import
- @Mixin
- @extend
變數
首先模擬一些寫純CSS容易會遇到的情境
- 一個網站內有四組文字連結顏色樣式,總CSS程式碼有5000行,有文字連結顏色的設定共98行。當客戶想要改某一個文字顏色樣式時,就必須花時間逐行去修改。
- 要修改全域設定的網頁樣式時,時常必須用滾輪或肉眼從數百行中找出你要改的程式碼,像字型樣式、網站總體寬度等等。
|
|
- 打『$』字號,後面則是變數名稱
- 使用#{}可以抓出字串使用
計算
- Sass支援加減乘除的計算
- 當原本選單寬度600,目前只有三個選單可以整櫥,某天臨時又要增加四個,就必須拿計算機來算寬度
|
|
若使用不同單位會出錯,例如使用px和em進行計算。
@import
- 在以往寫CSS時,
動輒數百、數千行,
寫多了就會很難找各CSS片段的位置,
且滾輪都必須滾很久才會找到對應的程式碼,
所以在以往都會在CSS寫註解,
至少用搜尋或找位置時都比較方便, - 但使用了Sass的@import功能,
就可以把CSS程式碼切成好幾份來做檔案管理,
最後編譯出來合併成一個CSS檔案,
在管理上自然方便得多。
|
|
mixin
在以前寫CSS的時候,
我們時常會遇到以下的情境,在開發多種CSS樣式時,會講第一次寫的程式碼複製貼上後,
再進行修改,但當樣式整個大修時(例:圓形改方形),
則又必須將所有CSS重新修正,頗不方便。
|
|
extend
- 有的時候我們為了不要讓CSS太龐大,所以有class用到相同樣式時,都會將其合併起來,如下CSS碼:
|
|
但這樣子會有個麻煩的地方是,
假設合併樣式程式碼的位置在第200行,
而我目前所在位置是在4640行,
當我又需要合併樣式時,
就又必須用滾輪會調卷軸到第200行來合併class樣式,
所以當程式碼越變變多時,
要集中相同樣式的工作流程相對也會變得更加繁瑣,所幸Sass @extend可以解決這樣的問題。
如果是用Sass來寫的話,
則就會變成這樣子:
|
|
究竟Mixin與extend的使用時機該如何抉擇?
基本上來說,
@mixin是將程式碼帶入到對應的class去,同時可帶入變數。
@extend則是藉由class合併,並吃到共通樣式,但沒辦法帶入變數。所以如果你的樣式都固定不變的,
不會需要用參數帶進去改變樣式的話,
那就用@extend,程式碼會比較少些。但如果你的程式碼需要帶入多個變數進行運算時,
那用@mixin則較適合。