CSS本身而言,對(duì)于大多數(shù)Web前端從業(yè)人員來(lái)說(shuō)就不是問(wèn)題。學(xué)過(guò)CSS的人都知道,它不是一種編程語(yǔ)言。你可以用它開(kāi)發(fā)網(wǎng)頁(yè)樣式,但是沒(méi)法用它編程。換句話說(shuō),CSS基本上是設(shè)計(jì)師的工具,不是程序員的工具。在程序員的眼里,CSS是很頭痛的事情,它并不像其它程序語(yǔ)言,比如說(shuō)PHP、Javascript等等,有自己的變量、常量、條件語(yǔ)句以及一些編程語(yǔ)法,只是一行行單純的屬性描述,寫(xiě)起來(lái)相當(dāng)?shù)馁M(fèi)事,而且代碼難易組織和維護(hù)。
很自然的,有人就開(kāi)始在想,能不能給CSS像其他程序語(yǔ)言一樣,加入一些編程元素,讓CSS能像其他程序語(yǔ)言一樣可以做一些預(yù)定的處理。這樣一來(lái),就有了“CSS預(yù)處器(CSS Preprocessor)”。
CSS 預(yù)處理器定義:
CSS 預(yù)處理器定義了一種新的語(yǔ)言,其基本思想是,用一種專門(mén)的編程語(yǔ)言,為 CSS 增加了一些編程的特性,將 CSS 作為目標(biāo)生成文件,然后開(kāi)發(fā)者就只要使用這種語(yǔ)言進(jìn)行編碼工作。
通俗的說(shuō),“CSS 預(yù)處理器用一種專門(mén)的編程語(yǔ)言,進(jìn)行 Web 頁(yè)面樣式設(shè)計(jì),然后再編譯成正常的 CSS 文件,以供項(xiàng)目使用。CSS 預(yù)處理器為 CSS 增加一些編程的特性,無(wú)需考慮瀏覽器的兼容性問(wèn)題”,例如你可以在 CSS 中使用變量、簡(jiǎn)單的邏輯程序、函數(shù)(如右側(cè)代碼編輯器中就使用了變量$color)等等在編程語(yǔ)言中的一些基本特性,可以讓你的 CSS 更加簡(jiǎn)潔、適應(yīng)性更強(qiáng)、可讀性更佳,更易于代碼的維護(hù)等諸多好處。
其它 CSS 預(yù)處理器語(yǔ)言:
CSS 預(yù)處理器技術(shù)已經(jīng)非常的成熟,而且也涌現(xiàn)出了很多種不同的 CSS 預(yù)處理器語(yǔ)言 Sass(SCSS)、LESS、Stylus
、Turbine、Swithch CSS、 CSS Cacheer、DT CSS。
如此之多的 CSS 預(yù)處理器,那么“我應(yīng)該選擇哪種 CSS 預(yù)處理器?”也相應(yīng)成了最近網(wǎng)上的一大熱門(mén)話題,在 Linkedin、Twitter、CSS-Trick、知呼以及各大技術(shù)論壇上,很多人為此爭(zhēng)論不休。相比過(guò)去我們對(duì)是否應(yīng)該使用 CSS 預(yù)處理器的話題而言,這已經(jīng)是很大的進(jìn)步了。