面試必看:less與sass的區(qū)別

less與sass的區(qū)別

????????在介紹less和sass的區(qū)別之前,我們先來了解一下他們的定義:

一翘贮、Less、Sass/Scss是什么?

1、Less:

????是一種動態(tài)樣式語言. 對CSS賦予了動態(tài)語言的特性士葫,如變量、繼承送悔、運(yùn)算慢显、函數(shù)爪模。

????Less 既可以在客戶端上運(yùn)行 (支持IE 6+, Webkit, Firefox),也可在服務(wù)端運(yùn)行荚藻。


2屋灌、Sass:

????是一種動態(tài)樣式語言,Sass語法屬于縮排語法应狱,

????比css比多出好些功能(如變量共郭、嵌套、運(yùn)算,混入(Mixin)疾呻、繼承除嘹、顏色處理,函數(shù)等)岸蜗,更容易閱讀尉咕。

Sass與Scss是什么關(guān)系?

Sass的縮排語法,對于寫慣css前端的web開發(fā)者來說很不直觀璃岳,也不能將css代碼加入到Sass里面年缎,因此sass語法進(jìn)行了改良,Sass 3就變成了Scss(sassy css)铃慷。與原來的語法兼容单芜,只是用{}取代了原來的縮進(jìn)。


二枚冗、less和sass的相同之處

Less和Sass在語法上有些共性缓溅,比如下面這些:

1、混入(Mixins)——class中的class赁温;

2坛怪、參數(shù)混入——可以傳遞參數(shù)的class,就像函數(shù)一樣股囊;

3袜匿、嵌套規(guī)則——Class中嵌套class,從而減少重復(fù)的代碼稚疹;

4居灯、運(yùn)算——CSS中用上數(shù)學(xué);

5内狗、顏色功能——可以編輯顏色怪嫌;

6、名字空間(namespace)——分組樣式柳沙,從而可以被調(diào)用岩灭;

7、作用域——局部修改樣式赂鲤;

8噪径、JavaScript 賦值——在CSS中使用JavaScript表達(dá)式賦值柱恤。


三、less和sass的區(qū)別

????Less和Sass的主要不同就是他們的實(shí)現(xiàn)方式找爱。

????Less是基于JavaScript梗顺,是在客戶端處理的。

????Sass是基于Ruby的车摄,是在服務(wù)器端處理的寺谤。

????關(guān)于變量在Less和Sass中的唯一區(qū)別就是Less用@,Sass用$练般。

1矗漾、Less:

【兩種注釋方式】

①//less中的注釋,但這種不會被編譯

②/*

?* 這也是less中的注釋薄料,但是會被編譯

?*/


【less中的變量】

1敞贡、聲明變量:

????@變量名:變量值;

????使用變量:?@變量名

????>>>less中變量的類型:

? ??①數(shù)字類?1 10px

? ??②字符串:無引號字符串 red ;有引號字符串 "haha"

? ??③顏色類:red #000000 rgb()

? ??④值列表類型:用逗號和空格分隔 10px solid red

????>>>變量使用原則:

????多次頻繁出現(xiàn)的值、需要修改的值摄职,設(shè)為變量

2誊役、混合(MiXins)

? ??①無參混合

? ??聲明:.name{}

????選擇器中調(diào)用:.name;

? ??②代參混合

? ??無默認(rèn)值

? ??聲明:.name(@param){}

? ??調(diào)用:.name(parValue);

? ??有默認(rèn)值

? ??聲明:.name(@param:value){}?

? ??調(diào)用:.name(parValue);?//parValue可省

????>>>如果聲明時,參數(shù)沒有默認(rèn)值谷市,則調(diào)用時必須賦值蛔垢,否則報(bào)錯!

????>>>無參混合迫悠,會在css中編譯除同名的class選擇器鹏漆,有參的不會

3、less的匹配模式:

使用混合進(jìn)行匹配创泄,類似于if結(jié)構(gòu)

聲明:

.name(條件一艺玲,參數(shù)){}

.name(條件二,參數(shù)){}

.name(@_,參數(shù)){}

調(diào)用:

.name(條件值鞠抑,參數(shù)值);

匹配規(guī)則:根據(jù)調(diào)用時提供的條件值去尋找與之匹配的"MiXins"執(zhí)行饭聚,其中@_表示永遠(yuǎn)需要執(zhí)行的部分

4、less中的運(yùn)算

+ - * / 可帶搁拙、可不帶單位

顏色運(yùn)算時秒梳,紅綠藍(lán)分三組計(jì)算,組內(nèi)可進(jìn)位箕速,組間互不干涉

5酪碘、包含了傳進(jìn)來的所有參數(shù):

border:@arguments;

6、less中的嵌套:保留HTML中的代碼結(jié)構(gòu)

①嵌套默認(rèn)是后代選擇器盐茎,如果需要子代選擇器婆跑,則在子代前加>

②.&表示上一層 &:表示上一層的hover事件

2、Sass:

1庭呜、Sass中的變量

使用 $變量名:變量值滑进,聲明變量;

如果變量需要在字符串中嵌套募谎,則需使用#加大括號包裹扶关;

border-#{$left}:10px solid blue;

2、Sass中的運(yùn)算

會將單位也進(jìn)行運(yùn)算数冬,使用時需注意最終單位例:10px*10px=100px*px

3节槐、sass中的嵌套:

選擇器嵌套,屬性嵌套拐纱,偽類嵌套

選擇器嵌套

  ? ? ul{ li{} } 后代

? ? ? ? ? ?ul{ >li{} } 子代

&:表示上一層?div{ ul{ li{ &=="div ul li" } } }

屬性嵌套:

屬性名與大括號之間必須有:?

例如:border:{color:red;}

偽類嵌套:ul{li{ &:hover{ "ul li:hover" } } }

4铜异、混合宏、繼承秸架、占位符

①混合宏:

聲明:@mixin?name($param:value){}

調(diào)用:@include?name(value);

>>>聲明時揍庄,可以有參,可以無參东抹;可帶默認(rèn)值蚂子,也可不帶;但是缭黔,調(diào)用時食茎,必須符合聲明規(guī)范。同less

>>>優(yōu)點(diǎn):可以傳參馏谨,不會生成同名class别渔;

>>>缺點(diǎn):會將混合宏中的代碼,copy到對應(yīng)的選擇器中惧互,產(chǎn)生冗余代碼哎媚!

②繼承:

聲明:.class{}

調(diào)用:@extend?.class;

>>>優(yōu)點(diǎn):繼承的相同代碼,會提取到并集選擇器中壹哺,減少冗余代碼

>>>缺點(diǎn):無法進(jìn)行傳參抄伍,會在css中,生成一個同名class

③占位符:

聲明:&class{}

調(diào)用:@extend?%class;

>>>優(yōu)點(diǎn):繼承相同代碼管宵,會提前到并集選擇器截珍;不會生成同名的class選擇器

>>>缺點(diǎn):無法進(jìn)行傳參

綜上所述:當(dāng)需要傳遞參數(shù)時,用混合宏箩朴;當(dāng)有現(xiàn)成的class時用繼承岗喉;當(dāng)不需要參數(shù),也不需要class時炸庞,用占位符

5钱床、if條件結(jié)構(gòu):

@if 條件 {}@else {}

6、for循環(huán)結(jié)構(gòu):

//不包含10;

@for $i from 1 to 10{}

//包含10;

@for $i from 1 through 10{}


7埠居、while循環(huán)結(jié)構(gòu):

$j: 1;

@while $j<10 {

????.while#{$j} {    border:#{$j}px solid red;

  }

  $j: $j+1;

}

8查牌、each循環(huán)遍歷

@each item in a,b,c,d{//item表示每一項(xiàng)}

9事期、函數(shù):

@function func($length) {  $length1:$length*5;  @return $length1;}//調(diào)用:

func(10px);

10、使用...將傳進(jìn)來的所有參數(shù)纸颜,接收到一個變量中

@mixin bordeRadius($param1...) {  //使用...將傳進(jìn)來的所有參數(shù)兽泣,接收到一個變量中

  border-radius:$param1;  -webkit-border-radius:$param1;}


四. 總結(jié)

不管是Sass,還是Less胁孙,

都可以視為一種基于CSS之上的高級語言唠倦,

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

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

基本可以說是一種真正的編程語言了涮较,

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

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

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


五.擴(kuò)展思考

處理機(jī)制不一樣會帶來什么不同?

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

前者是通過客戶端處理的毛肋,

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

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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末润匙,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子唉匾,更是在濱河造成了極大的恐慌孕讳,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,277評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件巍膘,死亡現(xiàn)場離奇詭異厂财,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)峡懈,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評論 3 393
  • 文/潘曉璐 我一進(jìn)店門璃饱,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人肪康,你說我怎么就攤上這事荚恶。” “怎么了磷支?”我有些...
    開封第一講書人閱讀 163,624評論 0 353
  • 文/不壞的土叔 我叫張陵谒撼,是天一觀的道長。 經(jīng)常有香客問我雾狈,道長廓潜,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,356評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮辩蛋,結(jié)果婚禮上呻畸,老公的妹妹穿的比我還像新娘。我一直安慰自己堪澎,他們只是感情好擂错,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,402評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著樱蛤,像睡著了一般。 火紅的嫁衣襯著肌膚如雪剑鞍。 梳的紋絲不亂的頭發(fā)上昨凡,一...
    開封第一講書人閱讀 51,292評論 1 301
  • 那天,我揣著相機(jī)與錄音蚁署,去河邊找鬼便脊。 笑死,一個胖子當(dāng)著我的面吹牛光戈,可吹牛的內(nèi)容都是我干的哪痰。 我是一名探鬼主播,決...
    沈念sama閱讀 40,135評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼久妆,長吁一口氣:“原來是場噩夢啊……” “哼晌杰!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起筷弦,我...
    開封第一講書人閱讀 38,992評論 0 275
  • 序言:老撾萬榮一對情侶失蹤肋演,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后烂琴,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體爹殊,經(jīng)...
    沈念sama閱讀 45,429評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,636評論 3 334
  • 正文 我和宋清朗相戀三年奸绷,在試婚紗的時候發(fā)現(xiàn)自己被綠了梗夸。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,785評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡号醉,死狀恐怖反症,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情扣癣,我是刑警寧澤惰帽,帶...
    沈念sama閱讀 35,492評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站父虑,受9級特大地震影響该酗,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,092評論 3 328
  • 文/蒙蒙 一呜魄、第九天 我趴在偏房一處隱蔽的房頂上張望悔叽。 院中可真熱鬧,春花似錦爵嗅、人聲如沸娇澎。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,723評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽趟庄。三九已至,卻和暖如春伪很,著一層夾襖步出監(jiān)牢的瞬間戚啥,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,858評論 1 269
  • 我被黑心中介騙來泰國打工锉试, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留猫十,地道東北人。 一個月前我還...
    沈念sama閱讀 47,891評論 2 370
  • 正文 我出身青樓呆盖,卻偏偏與公主長得像拖云,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子应又,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,713評論 2 354