一、原理
1.1 Less定義:是一種動態的樣式語言,使CSS變成一種動態的語言特性,如變量、繼承、運算、函數。Less既可以在客戶端上面運行(支持IE6以上版本、Webkit、Firefox),也可以在服務端運行(Node.js)
1.2 SaSS定義:是一種動態樣式語言,SaSS里面的語法屬于縮排語法,對于之前的css相比,多出了很多功能,更容易閱讀
1.3 預處理器。Less和SaSS都屬于預處理器,它會定義一種新的語言,其總體思想是為CSS增加一些編程的特性,將 CSS 作為目標生成文件,之后開發者就只要使用這種語言進行CSS的編碼工作。
二、兩者區別
??2.1 Less和Sass處理機制不一樣
- 前者是通過客戶端處理的,后者是通過服務端處理,相比較之下前者解析會比后者慢一點。
??2.2 變量符:
- ? Less是@
- ?Sass是$
? ? 2.3 輸出設置
? ? ? ? ? ?Less沒有輸出設置,而Sass有4種輸出選項,如下
? ? ? ? ? ? ? ?nested:嵌套縮進的css代碼
? ? ? ? ? ? ? ?expanded:展開的多行css代碼
? ? ? ? ? ? ? ?compact:簡潔格式的css代碼
? ? ? ? ? ? ? ? compressed:壓縮后的css代碼
2.4 Sass支持條件語句,可以使用if{}else{},for{}循環等等,而Less不支持2.5 Sass功能較Less強大
- sass有變量和作用域
- sass有函數的概念
- 進程控制
- 數據結構
三、總體優點
3.1 提供CSS缺失的樣式層復用機制
3.2 減少冗余代碼
3.3 提高樣式代碼的可維護性
3.4 結構清晰,便于擴展可以方便的屏蔽瀏覽器私有的語法差異
3.5 輕松實現多重繼承,完全兼容了CSS代碼,提高了開發效率。
四、為什么選擇使用Sass而不是Less
- Sass有更成熟的框架,比如說Compass,而且有很多框架也使用Sass,比如說Foundation;
- bootstrap(Web框架)最新推出的版本4,使用的就是Sass,可以看出sass有更多市場價值。
- 就國外討論的熱度來說,Sass絕對優于less;
- 在國內less集中的教程是less中文官網,而Sass的中文教程,在國內較為普遍;
- sass也是成熟的CSS預處理器之一,而且有一個穩定,強大的團隊在維護;
- scss對sass語法進行了改良,sass 3變成了Scss(sassy css)。與原來的語法兼容,只是用{}取代了原來的縮進;
原文鏈接:面試題之Less和SaSS的原理和用法_less和sass的區別面試題_雨落聽風清的博客-CSDN博客