sass和less地出現大大的提升了代碼的復用性,按常理來說它們也是css,被稱為CSS擴展語言(簡稱強化版的css),理論來說sass也需要編譯成為css才能在瀏覽器上面運行的。那么為什么會出現sass和less呢?開發者應該選擇哪一個預處理語言來開發呢?
編譯語言讓開發變得更加高效
眾所周知,css的誕生就是為了作為網站的樣式所用(你可以試試把一些網站的css去掉,就能看到網站的用戶體驗感基本為0),其實原理都差不多,saas和less無非就是在css上面加入了變量等,它能讓你的前端開發工作更加的輕松。
為什么要選擇saas和less預處理語言?
css面臨的下面的幾個問題:
- 語法不夠強大,比如無法嵌套書寫,導致模塊化開發中需要書寫很多重復的選擇器;
- 沒有變量和合理的樣式復用機制,使得邏輯上相關的屬性值必須以字面量的形式重復輸出,導致難以維護。
saas和less之間的區別
一:編譯方式不同:less和sass都是css的拓展語言,最主要的區別是less是通過JAVAscript編譯,而sass是通過ruby編譯的,如果沒有引入前端工程化,less會消耗客戶端性能,sass會消耗服務端性能,但是引入前端工程化的話,gunt,gulp,webpack等,less和sass在打包階段都會轉化成css,所以不會有區別,只是sass是基于ruby,所以每次npm的時候相對慢一點點。
二:定義變量時候不同:less的定義變量是用@,而sass則用跟php一樣的定義方式$。
三:混合模式的不同:Less中使用混合時,只需在classB中根據classA的命名來是用;Sass中首先在定義混合時需要使用@mixin命令,其次在調用時需要使用@include命令來引入之前定義的混合。
四:語法使用上的不同:比如變量的作用域等。
新手建議用less,有經驗的程序員用saas開發
Sass有很多可用的方法和邏輯。例如:條件和循環語句。LESS也可以做到,但不是很高效且不直觀。像LESS一樣,Sass也內置了一些非常友好的函數,像顏色,數字,還有變量列表。
Sass用戶可以使用功能強大的Compass庫。這些庫LESS用戶也可以用,但并不完全一樣,因為這是由一個龐大的社區來共同維護的。Compass有非常強大的特性,像自動生成圖片切片(CSS Sprites),傳統瀏覽器支持,還有對CSS3的跨瀏覽器支持等。
Compass同樣允許你使用外部框架像Blueprint, Foundation 或 Bootstrap。這也意味著你可以非常容易地使用你喜歡的框架而不需要掌握各種不同的工具。
預處理語言也不是萬能的,因為css是直接寫完可以在瀏覽器可以解析的,但是例如saas就需要編譯完之后才能運行的,如果并非大型的網站項目開發的話,我覺得沒必要用saas等預處理語言。






