轉載自:http://yunkus.com/difference-between-scss-sass/
要想了解Scss 與 Sass 是什么以及他們的區別又在哪里,我們不過不先從他們各自的定義說起。

Sass是什么
Sass 是一門高於 CSS 的元語言,它能用來清晰地、結構化地描述文件樣式,有着比普通 CSS 更加強大的功能。Sass 能夠提供更簡潔、更優雅的語法,同時提供多種功能來創建可維護和管理的樣式表。Sass 是采用 Ruby 語言編寫的一款 CSS 預處理語言,它誕生於2007年,是最大的成熟的 CSS 預處理語言。最初它是為了配合HAML(一種縮進式 HTML 預編譯器)而設計的,因此有着和 HTML 一樣的縮進式風格。SASS是CSS3的一個擴展,增加了規則嵌套、變量、混合、選擇器繼承等等。通過使用命令行的工具或WEB框架插件把它轉換成標准的、格式良好的CSS代碼。
Sass官方網站:http://sass-lang.com
Scss是什么
Scss 是 Sass 3 引入新的語法,是Sassy CSS的簡寫,是CSS3語法的超集,也就是說所有有效的CSS3樣式也同樣適合於Sass。說白了Scss就是Sass的升級版,其語法完全兼容 CSS3,並且繼承了 Sass 的強大功能。也就是說,任何標准的 CSS3 樣式表都是具有相同語義的有效的 SCSS 文件。另外,SCSS 還能識別大部分 CSS hacks(一些 CSS 小技巧)和特定於瀏覽器的語法,例如:古老的 IE filter 語法。
由於 Scss 是 CSS 的擴展,因此,所有在 CSS 中正常工作的代碼也能在 Scss 中正常工作。也就是說,對於一個 Sass 用戶,只需要理解 Sass 擴展部分如何工作的,就能完全理解 Scss。大部分擴展,例如變量、parent references 和 指令都是一致的;唯一不同的是,SCSS 需要使用分號和花括號而不是換行和縮進。
Scss 與 Sass異同
Sass 和 Scss 其實就是同一種東西,我們平時都稱之為 Sass,兩者之間不同之處主要有以下兩點:
1.文件擴展名不同,Sass 是以“.sass”后綴為擴展名,而 Scss 是以“.scss”后綴為擴展名。
2.語法書寫方式不同,Sass 是以嚴格的縮進式語法規則來書寫,不帶大括號({})和分號(;),而 Scss 的語法書寫和我們的CSS 語法書寫方式非常類似。
我們不妨來看看下面兩段代碼,這樣會更加直觀,更容易理解。
簡單的Sass代碼
1 #sidebar 2 width: 30% 3 background-color: #faa
對應的Scss代碼
1 #sidebar { 2 width: 30%; 3 background-color: #faa; 4 }
另外,SCSS 對空白符號不敏感。上面的代碼也可以書寫成下面的樣子:
1 #sidebar {width: 30%; background-color: #faa}
我們不妨接着再分享幾段 Scss 代碼
Sass允許選擇器嵌套。比如,下面的CSS代碼:
1 div { 2 h1 { 3 color:blue; 4 } 5 }
輸出的CSS樣式為
1 div h1 { 2 color: blue; 3 }
在嵌套的代碼塊內,可以使用&引用父元素。比如a:hover偽類,可以寫成:
1 a { 2 &:hover { color: #0099cc; } 3 }
輸出的CSS樣式為
1 a:hover { 2 color: #0099cc; 3 }
有意思吧,其實要想學習Scss並不難。個人覺得很簡單,只不過在環境配置時需要花點時間而已,其它的都還好。由於我用的是Windows 7系統,所有在配置環境的時候,折騰一下也是應該的。我在雲庫網里也有分享過兩篇關於Ruby Sass在配置時報錯的解決方法,大家不妨可以看看,收藏備用!
