Scss 與 Sass 是什麼,他們的區別在哪裏?

轉載自:http://yunkus.com/difference-between-scss-sass/css

要想了解Scss 與 Sass 是什麼以及他們的區別又在哪裏,咱們不過不先從他們各自的定義提及。瀏覽器

Scss 與 Sass 是什麼,他們的區別在哪裏?

Sass是什麼

Sass 是一門高於 CSS 的元語言,它能用來清晰地、結構化地描述文件樣式,有着比普通 CSS 更增強大的功能。Sass 可以提供更簡潔、更優雅的語法,同時提供多種功能來建立可維護和管理的樣式表。Sass 是採用 Ruby 語言編寫的一款 CSS 預處理語言,它誕生於2007年,是最大的成熟的 CSS 預處理語言。最初它是爲了配合HAML(一種縮進式 HTML 預編譯器)而設計的,所以有着和 HTML 同樣的縮進式風格。SASS是CSS3的一個擴展,增長了規則嵌套、變量、混合、選擇器繼承等等。經過使用命令行的工具或WEB框架插件把它轉換成標準的、格式良好的CSS代碼。sass

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 語法。ide

因爲 Scss 是 CSS 的擴展,所以,全部在 CSS 中正常工做的代碼也能在 Scss 中正常工做。也就是說,對於一個 Sass 用戶,只須要理解 Sass 擴展部分如何工做的,就能徹底理解 Scss。大部分擴展,例如變量、parent references 和 指令都是一致的;惟一不一樣的是,SCSS 須要使用分號和花括號而不是換行和縮進。工具

Scss 與 Sass異同

Sass 和 Scss 其實就是同一種東西,咱們平時都稱之爲 Sass,二者之間不一樣之處主要有如下兩點:學習

1.文件擴展名不一樣,Sass 是以「.sass」後綴爲擴展名,而 Scss 是以「.scss」後綴爲擴展名。網站

2.語法書寫方式不一樣,Sass 是以嚴格的縮進式語法規則來書寫,不帶大括號({})和分號(;),而 Scss 的語法書寫和咱們的CSS 語法書寫方式很是相似。spa

咱們不妨來看看下面兩段代碼,這樣會更加直觀,更容易理解。插件

簡單的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在配置時報錯的解決方法,你們不妨能夠看看,收藏備用!

相關文章
相關標籤/搜索