Scss 與 Sass 是什么,他們的區別在哪里?


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

要想了解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在配置時報錯的解決方法,大家不妨可以看看,收藏備用!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM