之前接觸過(guò)less+vue,sass+ng2的開發(fā)內(nèi)容,今天偶然看到stylus這個(gè)東西,之前聽都沒聽過(guò),都不知道怎么讀,故寫這些東西研究下
SASS: 2007年誕生,最早也是最成熟的CSS預(yù)處理器,擁有ruby社區(qū)的支持和compass這一最強(qiáng)大的css框架,目前受LESS影響,已經(jīng)進(jìn)化到了全面兼容CSS的SCSS。
LESS: 2009年出現(xiàn),受SASS的影響較大,但又使用CSS的語(yǔ)法,讓大部分開發(fā)者和設(shè)計(jì)師更容易上手,在ruby社區(qū)之外支持者遠(yuǎn)超過(guò)SASS,其缺點(diǎn)是比起SASS來(lái),可編程功能不夠,不過(guò)優(yōu)點(diǎn)是簡(jiǎn)單和兼容CSS,反過(guò)來(lái)也影響了SASS演變到了SCSS的時(shí)代,著名的Twitter Bootstrap就是采用LESS做底層語(yǔ)言的。
Stylus:2010年產(chǎn)生,來(lái)自Node.js社區(qū),主要用來(lái)給Node項(xiàng)目進(jìn)行CSS預(yù)處理支持,在此社區(qū)之內(nèi)有一定支持者,在廣泛的意義上人氣還完全不如SASS和LESS。
CSS 預(yù)處理器是什么?一般來(lái)說(shuō),它們基于 CSS 擴(kuò)展了一套屬于自己的 DSL,來(lái)解決我們書寫 CSS 時(shí)難以解決的問題:
? ? ? ? === > DSL????? Domain Specific Language? 特定領(lǐng)域下的語(yǔ)言,DSL是為了解決某些特定場(chǎng)景下的任務(wù)而專門設(shè)計(jì)的語(yǔ)言
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?與之對(duì)應(yīng)的就是通用編程語(yǔ)言,比如Java/C/C++這種
css問題:
語(yǔ)法不夠強(qiáng)大,比如無(wú)法嵌套書寫導(dǎo)致模塊化開發(fā)中需要書寫很多重復(fù)的選擇器;
沒有變量和合理的樣式復(fù)用機(jī)制,使得邏輯上相關(guān)的屬性值必須以字面量的形式重復(fù)輸出,導(dǎo)致難以維護(hù)。
預(yù)處理器優(yōu)勢(shì):提供 CSS 缺失的樣式層復(fù)用機(jī)制、減少冗余代碼,提高樣式代碼的可維護(hù)性
參考文章:http://efe.baidu.com/blog/revisiting-css-preprocessors/? ?這個(gè)才看了一點(diǎn)點(diǎn),有空了好好全都看一遍呀,不能忘了