定義:css
CSS 預處理器定義了一種新的語言,其基本思想是,用一種專門的編程語言,爲 CSS 增長了一些編程的特性,將 CSS 做爲目標生成文件,而後開發者就只要使用這種語言進行編碼工做。前端
通俗的說,「CSS 預處理器用一種專門的編程語言,進行 Web 頁面樣式設計,而後再編譯成正常的 CSS 文件,以供項目使用。CSS 預處理器爲 CSS 增長一些編程的特性,無需考慮瀏覽器的兼容性問題」,例如你能夠在 CSS 中使用變量、簡單的邏輯程序、函數(如右側代碼編輯器中就使用了變量$color)等等在編程語言中的一些基本特性,可讓你的 CSS 更加簡潔、適應性更強、可讀性更佳,更易於代碼的維護等諸多好處。編程
其它 CSS 預處理器語言:瀏覽器
CSS 預處理器技術已經很是的成熟,並且也涌現出了不少種不一樣的 CSS 預處理器語言,好比說:sass
如此之多的 CSS 預處理器,那麼「我應該選擇哪一種 CSS 預處理器?」也相應成了最近網上的一大熱門話題,在 Linkedin、Twitter、CSS-Trick、知乎以及各大技術論壇上,不少人爲此爭論不休。相比過去咱們對是否應該使用 CSS 預處理器的話題而言,這已是很大的進步了。編程語言
到目前爲止,在衆多優秀的 CSS 預處理器語言中就屬 Sass、LESS 和 Stylus 最優秀,討論的也多,對比的也多。本教程將着重向你們介紹 CSS 預處理器中的 Sass。相信前端開發工程師會喜歡的。編輯器
Sass 官網上是這樣描述 Sass 的:函數
Sass 是一門高於 CSS 的元語言,它能用來清晰地、結構化地描述文件樣式,有着比普通 CSS 更增強大的功能。 Sass 可以提供更簡潔、更優雅的語法,同時提供多種功能來建立可維護和管理的樣式表。
Sass 前世此生:編碼
Sass 是最先的 CSS 預處理語言,有比 LESS 更爲強大的功能,不過其一開始的縮進式語法(Sass 老版本語法,後面課程會詳細介紹 )並不能被大衆接受,不過因爲其強大的功能和 Ruby on Rails 的大力推進,仍是有不少開發者選擇了 Sass。設計
Sass 是採用 Ruby 語言編寫的一款 CSS 預處理語言,它誕生於2007年,是最大的成熟的 CSS 預處理語言。最初它是爲了配合 HAML(一種縮進式 HTML 預編譯器)而設計的,所以有着和 HTML 同樣的縮進式風格。
爲何早期不如 LESS 普及?
雖然縮進式風格能夠有效縮減代碼量,強制規範編碼風格,但它一方面並不爲大多數程序接受,另外一方面沒法兼容已有的 CSS 代碼。這也是 Sass 雖然出現得最先,但遠不如 LESS 普及的緣由。
Sass 和 SCSS 實際上是同一種東西,咱們平時都稱之爲 Sass,二者之間不一樣之處有如下兩點:
先來看一個示例:
Sass 語法
$font-stack: Helvetica, sans-serif //定義變量 $primary-color: #333 //定義變量 body font: 100% $font-stack color: $primary-color
SCSS 語法
$font-stack: Helvetica, sans-serif; $primary-color: #333; body { font: 100% $font-stack; color: $primary-color; }
編譯出來的 CSS
body { font: 100% Helvetica, sans-serif; color: #333; }
提示:小夥伴們能夠看出來,咱們的右側代碼使用的是 SCSS 語法方式(咱們的代碼編輯器不支持 Sass 語法方式噢!)。
寫法差不少嗎?這是不少初學者會問的一個問題。那麼藉此機會簡單瞭解一下。
Sass 和 CSS 寫法有差異:
Sass 和 CSS 寫法的確存在必定的差別,因爲 Sass 是基於 Ruby 寫出來,因此其延續了 Ruby 的書寫規範。在書寫 Sass 時不帶有大括號和分號,其主要是依靠嚴格的縮進方式來控制的。如:
Sass寫法:
body color: #fff background: #f36
而在 CSS 咱們是這樣書寫:
body{ color:#fff; background:#f36; }
SCSS 和 CSS 寫法無差異:
SCSS 和 CSS 寫法無差異,這也是 Sass 後來愈來愈受大衆喜歡緣由之一。簡單點說,把你現有的「.css」文件直接修改爲「.scss」便可使用。