Less和Sass都是CSS預(yù)處理器弹渔;CSS預(yù)處理器是一種專門的編程語言進(jìn)行web頁面樣式設(shè)計(jì)再通過編譯器轉(zhuǎn)化為正常的CSS文件然后進(jìn)行布局設(shè)計(jì)。
使用CSS預(yù)處理器的原因:
1.語法不夠強(qiáng)大溯祸,無法嵌套書寫肢专,導(dǎo)致模塊開發(fā)中需要書寫很多重復(fù)的選擇器;
2.沒有變量和合理的樣式復(fù)用機(jī)制焦辅,邏輯上相關(guān)的屬性值必須以字面量的形式重復(fù)輸出導(dǎo)致難以維護(hù)博杖。
Less和Sass相同之處:
1.混入(Mixins):class中的class;
2.參數(shù)混入:可以傳遞參數(shù)的class筷登,就像函數(shù)一樣剃根;
3.嵌套規(guī)則:class中嵌套class,從而減少重復(fù)的代碼前方;
4.運(yùn)算:CSS中用上數(shù)學(xué)狈醉;
5.顏色功能:可以編輯顏色;
6.名字空間:分組樣式镣丑,從而可以被調(diào)用舔糖;
7.作用域:局部修改樣式;
8.JavaScript賦值:在CSS中使用JavaScript表達(dá)式賦值莺匠。
Less和Sass區(qū)別:
Less是基于JavaScript的金吗,是在客戶端處理;
Sass是基于Ruby的趣竣,是在服務(wù)器端處理的摇庙;
Less較Sass相比較而言簡單,具有CSS原本的特性遥缕,在原有的CSS基礎(chǔ)上卫袒,加上了程序式語言的特性;
Less和Sass唯一的區(qū)別就是Less用@单匣,Sass用$夕凝;
從功能上看宝穗,Sass比Less較為強(qiáng)大:
1.Sass有變量和作用域:變量有全局與局部之分并且有優(yōu)先級(jí);
2.Sass有函數(shù)概念:@function和@return以及函數(shù)參數(shù)(還有不定參)可以讓你像js開發(fā)那樣封裝你想要的邏輯码秉;
@mixin類似function但缺少像function的編程邏輯逮矛,更多的是提高css代碼段的復(fù)用性和模塊化,這個(gè)用的人也是最多的转砖;
ruby提供了非常豐富的內(nèi)置原生api须鼎。
3.進(jìn)程控制:條件:@if @else;
循環(huán)遍歷:@for @each @while
繼承:@extend
引用:@import
4.數(shù)據(jù)結(jié)構(gòu):$list類型=數(shù)組府蔗;
$map類型=object晋控;