作者 Werner Schuster 譯者 楊晨 發布于 2009年7月28日 上午5時56分
在Web開發中,CSS的使用是非常普遍的,但濫用的情況也是屢見不鮮。 LESS 和 Sass 都是用Ruby實現的工具,可以幫助開發者寫出復用性更優的CSS文件。它們的方法基本類似: 將類似CSS但是更為強大的輸入語言,最終轉換為CSS代碼。
兩種語言給CSS添加的特性都是相似的,具體參見 LESS 和 Sass 的文檔。下面是一個簡略的概述:
- 變量 : LESS中的 @name 和Sass中的 !name 都是變量。我們可以給變量賦值,然后在文件中使用它們。
- 內嵌 :這個功能將另外一個急需的特性加入CSS:將選擇器嵌入到其他等級,而不是不得不取消在一些高級選擇器定義中嵌套。LESS和Sass翻譯器將這個簡潔的特性擴展到了CSS。
- 混合類型 :允許開發者抽象出性質的共同點,然后命名并且加入到選擇器中。熟悉Ruby混合類型的開發者會了解混合類型在CSS中的應用。Sass也允許將混合類型作為參數,使得混合類型的應用更加靈活。
- 操作 :LESS和Sass都支持簡單的算術操作,例如加法。將這個特性和變量結合起來,會使得CSS變得更加靈活。這兩個工具需要保證操作的正確性(例如字體大小)。
Sass 是由 Haml 的團隊開發的。它采用了Haml的思想,使用縮進而不是括號這樣的分隔符來定義代碼塊或者內嵌級別。
Sass的解析器 和翻譯器將Sass語言翻譯成CSS,并且用變量值替換文件中變量的引用以及混合類型等等。
LESS 是受Sass啟發而開發的工具,它列出了 如下開發的理由 :
為什么要開發一個Sass的替代品呢?原因很簡單:首先是語法。Sass的一個關鍵特性是縮進式的語法,這種語法可以產生柱式外觀的代碼。但是你需要花費時間學習一門新的語法以及重新構建你現在的樣式表。
LESS給CSS帶來了很多特性,使得LESS能夠和CSS無縫地緊密結合在一起。因此,你可以平滑地由CSS遷移到LESS,如果你只是對使用變量或者操作感興趣的話,你不需要學習一整門全新的語言。
LESS的解析器是使用 TreeTop 編寫的,TreeTop是一個Ruby編寫的PEG解析器的生成器( LESS TreeTop語法 )。
LESS和Sass工具(編譯器和API)能夠作為Gems安裝,使用命令行工具進行編譯,但是也可以在Ruby代碼中使用。
Sass看起來在提供的特性上占有優勢,但是LESS能夠讓開發者平滑地從現存CSS文件過渡到LESS,而不需要像Sass那樣需要將CSS文件轉換成Sass格式。Sass的維護者Nathan Weizenbaum在一篇 對比LESS和Sass的博文 中提到,未來Sass將會提供括號,而不是像CSS或者LESS那樣的縮進。
查看英文原文: DRYer CSS with LESS or Sass
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
