sass 和 less的區(qū)別

大家好,我是IT修真院成都分院第07期學(xué)員,一枚正直善良的web程序員。


一.背景介紹

在我們編寫(xiě)CSS文件樣式時(shí),

經(jīng)常會(huì)使用到less或者sass這兩種工具,

那么它們是什么?

有什么區(qū)別?

各自又有哪些優(yōu)缺點(diǎn)?

我們?cè)撊绾芜x擇呢?

二.Sass、Less是什么?

Sass (Syntactically Awesome Stylesheets)是一種動(dòng)態(tài)樣式語(yǔ)言,

Sass語(yǔ)法屬于縮排語(yǔ)法,比css比多出好些功能

(如變量、嵌套、運(yùn)算,混入(Mixin)、繼承、顏色處理,函數(shù)等),更容易閱讀。

Sass的縮排語(yǔ)法,對(duì)于寫(xiě)慣css前端的web開(kāi)發(fā)者來(lái)說(shuō)很不直觀,

也不能將css代碼加入到Sass里面,因此sass語(yǔ)法進(jìn)行了改良,

Sass 3就變成了Scss(sassy css)。與原來(lái)的語(yǔ)法兼容,

只是用{}取代了原來(lái)的縮進(jìn)。

Less也是一種動(dòng)態(tài)樣式語(yǔ)言.

對(duì)CSS賦予了動(dòng)態(tài)語(yǔ)言的特性,

如變量,繼承,運(yùn)算, 函數(shù).

Less 既可以在客戶端上運(yùn)行 (支持IE 6+, Webkit, Firefox),

也可在服務(wù)端運(yùn)行 (借助 Node.js)。

三.Sass與Less的區(qū)別

1.編譯環(huán)境不一樣

Sass的安裝需要Ruby環(huán)境,是在服務(wù)端處理的,而Less是需要引入less.js來(lái)處理Less代碼輸出css到瀏覽器,

也可以在開(kāi)發(fā)環(huán)節(jié)使用Less,然后編譯成css文件,直接放到項(xiàng)目中,

也有 Less.app、SimpleLess、CodeKit.app這樣的工具,也有在線編譯地址。

2.變量符不一樣

Less是@,而Scss是$,而且變量的作用域也不一樣。

3.輸出設(shè)置

Less沒(méi)有輸出設(shè)置,Sass提供4中輸出選項(xiàng):nested, compact, compressed 和 expanded。

輸出樣式的風(fēng)格可以有四種選擇,默認(rèn)為nested

nested:嵌套縮進(jìn)的css代碼

expanded:展開(kāi)的多行css代碼

compact:簡(jiǎn)潔格式的css代碼

compressed:壓縮后的css代碼

4.Sass支持條件語(yǔ)句,可以使用if{},else{},for{}循環(huán)等等。而Less不支持。

5. 引用外部CSS文件

sass引用的外部文件命名必須以_開(kāi)頭。

文件名如果以下劃線_開(kāi)頭的話,Sass會(huì)認(rèn)為該文件是一個(gè)引用文件,不會(huì)將其編譯為css文件。

Less引用外部文件和css中的@import沒(méi)什么差異。

6.Sass和Less的工具庫(kù)不同

Sass有工具庫(kù)Compass, 簡(jiǎn)單說(shuō),Sass和Compass的關(guān)系有點(diǎn)像Javascript和jQuery的關(guān)系,Compass是Sass的工具庫(kù)。在它的基礎(chǔ)上,封裝了一系列有用的模塊和模板,補(bǔ)充強(qiáng)化了Sass的功能。

Less有UI組件庫(kù)Bootstrap,Bootstrap是web前端開(kāi)發(fā)中一個(gè)比較有名的前端UI組件庫(kù),Bootstrap的樣式文件部分源碼就是采用Less語(yǔ)法編寫(xiě)。

四. 總結(jié)

不管是Sass,還是Less,

都可以視為一種基于CSS之上的高級(jí)語(yǔ)言,

其目的是使得CSS開(kāi)發(fā)更靈活和更強(qiáng)大,

Sass的功能比Less強(qiáng)大,

基本可以說(shuō)是一種真正的編程語(yǔ)言了,

Less則相對(duì)清晰明了,易于上手,對(duì)編譯環(huán)境要求比較寬松。

考慮到編譯Sass要安裝Ruby,而Ruby官網(wǎng)在國(guó)內(nèi)訪問(wèn)不了,個(gè)人在實(shí)際開(kāi)發(fā)中更傾向于選擇Less,

但也會(huì)去嘗試使用sass,畢竟為以后的工作做準(zhǔn)備。

五.擴(kuò)展思考

處理機(jī)制不一樣會(huì)帶來(lái)什么不同?

因?yàn)長(zhǎng)ess與Sass處理機(jī)制不一樣,

前者是通過(guò)客戶端處理的,

后者是通過(guò)服務(wù)端處理,

相比較之下前者解析js會(huì)比后者慢一點(diǎn)。

六.更多討論

你會(huì)選擇使用什么,為什么?

七.參考資料

1.知乎問(wèn)答。

2..http://www.cnblogs.com/wangpenghui522/p/5467560.html

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 一. Sass/Scss、Less是什么? Sass (Syntactically Awesome Stylesh...
    Programmer客棧閱讀 8,543評(píng)論 0 3
  • 1.背景介紹 CSS 是一門(mén)非程序式語(yǔ)言,沒(méi)有變量、函數(shù)、SCOPE(作用域),需要書(shū)寫(xiě)大量看似沒(méi)有邏輯的代碼,不...
    遠(yuǎn)望的云閱讀 32,496評(píng)論 3 35
  • 大家好,我是IT修真院鄭州分院第05期學(xué)員,一枚正直純潔善良的web程序員。今天給大家分享一下,修真院官網(wǎng)css任...
    渣渣啊123閱讀 2,810評(píng)論 0 4
  • 一、 和平時(shí)一樣,坐在公交車(chē)倒數(shù)第二排靠窗的位置上。 今天起得晚,晃晃悠悠地,不再追趕時(shí)間。所有的忙碌似乎都停止了...
    家函閱讀 664評(píng)論 8 4
  • 170130@D27.感恩冥想 *佩詩(shī)* 。感恩圣師教授我們終極規(guī)律 。感恩父母的養(yǎng)育之恩,我的家公家婆,我的先生...
    AllisonSim閱讀 253評(píng)論 0 1

友情鏈接更多精彩內(nèi)容