613 views
# SCSS SASS ###### tags: `網頁教學` ## 前言 ### 今天概略介紹SASS SCSS 網站:[點我1](http://r00.club/post/scss/) [點我2](http://augus-blog.logdown.com/posts/143401-scss-tutorial/) 在講述的過程中,幾個小細節可能要用到再去查,或者有興趣可以詳細閱讀連結裡面的內容,很多我也沒用過不清楚這時候自己搜尋的能力就HEN重要啦哈哈 這邊概略的介紹,這短短的介紹你們也不會記得XD 這邊教的很多東西都是先讓你知道有這個東西存在,不會一無所知 我附上的連結教學你們有興趣可以看看,你們可以對比CSS和SCSS的差別,都會的話運用起來就更方便了,畢竟沒人嫌工具技能會得多XD ## 什麼是 SASS ? SASS (Syntactically Awesome Stylesheets) 是一種 CSS 的擴充,透過編譯會 compiled 成傳統 CSS,讓瀏覽器可以閱讀,增加了變數、巢狀、繼承、函式等功能。 簡潔、重複性佳、可維護性佳、可延展性佳。 Sass 的語法分為舊的 SASS (向 Haml取經,具備不使用大括弧格式、使用縮排,不能直接使用 CSS 語法、學習曲線較高等特性,檔案名稱為 .sass ) 和新的 SCSS (Sassy CSS、Sass 3,檔案名稱為 .scss) ## Sass和SCSS的區別 副檔名不同:“.sass”和“.scss”; Sass是以嚴格縮排式語法規則來書寫的,不帶大括號和分號;而SCSS的語法和CSS書寫語法類似。 ## 為什麼該使用 SCSS ? SCSS提供更可靠更容易重複使用的功能,例如變數、巢狀結構、函式、繼承等方法, 當需要修改重複的style屬性時,良好的SCSS撰寫方式讓我們可以只需要更改少部分的地方即可, SCSS容易將計有模組移至新專案中,大幅的增加css的重用性(reuse)。 * 更清楚的style表達式 * 更容易維護的style * 減少重複style(使用繼承或是mixin) * 減少開發專案時間 * 容易將既有的元件搬移到其他專案 * 可以使用運算元,也就是說可以做加減乘除的運算 <!--more--> ## SCSS 語法介紹 ### 變數與運算 可以用錢號 $ 來定義變數,用冒號 : 來指定變數的值,這與 CSS 定義屬性值很相似,在檔案中的其他地方就使用這些變數值。 * 例子看連結裡面 ### 巢狀 Nesting 巢狀讓我們可以使用更直觀的寫法撰寫具有階層關係的 style,並且可以避免撰寫出重複的 css ``` // css ul { list-style: none; } ul li { display: inline-block; padding: 15px; } ul li a { color: #444; font-size: 16px; text-decoration: none; } ``` ``` // scss ul { list-style: none; li { display: inline-block; padding: 15px; a { color: #444; font-size: 16px; text-decoration: none; } } } ``` ### 匯入 Impot * 詳情看連結裡面 ### 混合 Mixin * 詳情看連結裡面 ### 擴充 / 繼承 Extend 看程式碼就懂了 ``` .message { border: 1px solid #ccc; padding: 10px; color: #333; } .success { @extend .message; border-color: green; } .error { @extend .message; border-color: red; } ``` ### 函式 Functions SCSS 中也有 @function 可以定義自訂的函式,也有一些簡單的流程控制以及運算能力,例如 @return、@if、@for、@each SCSS中也內建了許多[工具函式](http://sass-lang.com/documentation/Sass/Script/Functions.html)