sass與less

一直使用的都是sass妆艘,公司提出新需求要用less看幼,看了一下less的官方文檔,感覺(jué)記不住桌吃。在這我想用與sass的比較學(xué)習(xí),加深印象茅诱。也希望可以幫助到一些人瑟俭。

一契邀、安裝sass與less
sass基于Ruby語(yǔ)言開(kāi)發(fā)而成,因此安裝sass前需要安裝Ruby。(注:mac下自帶Ruby無(wú)需在安裝Ruby!)逗扒;

方法如下:

gem install sass欠橘、 gem install compass

less在服務(wù)器端最容易的安裝方式就是通過(guò) npm (node.js 的包管理器),方法如下:

$ npm install -g less

less 在客戶端使用“.less”(LESS源文件)黍檩,只需要在官網(wǎng)載一個(gè)javascript腳本文件主“l(fā)ess.js”,然后在我們需要引入LESS源文件的html的中加入如下代碼:


<link rel="stylesheet/less" type="text/css" href="文件路徑/styles.less">

<script src="文件路徑/less.js" type="text/javascript"></script>

二刽酱、變量

sass 是以$開(kāi)頭定義的變量瞧捌,如:$mainColor: #963;

less 是以@開(kāi)頭定義的變量,如 @mainColor: #963;

三衍慎、作用域
sass 沒(méi)有全局變量,滿足就近原則稳捆,但是實(shí)際中可以將需要定義的全局屬性放在base.scss 文件中麦轰。注意變量名重復(fù);
less 中的作用域和其他程序語(yǔ)言中的作用域非常的相同,他首先會(huì)查找局部定義的變量末荐,如果沒(méi)有找到,會(huì)像冒泡一樣甲脏,一級(jí)一級(jí)往下查找,直到根為止块请。

四拳缠、混合(Mixins)

Sass的混合

sass樣式中聲明Mixins時(shí)需要使用“@mixin”,然后后面緊跟Mixins的名窟坐,他也可以定義參數(shù)绵疲,同時(shí)可以給這個(gè)參數(shù)設(shè)置一個(gè)默認(rèn)值盔憨,但參數(shù)名是使用“$”符號(hào)開(kāi)始,而且和參數(shù)值之間需要使用冒號(hào)(:)分開(kāi)郁岩。
在選擇器調(diào)用定義好的Mixins需要使用“@include”芙盘,然后在其后緊跟你要調(diào)用的Mixins名。不過(guò)在Sass中還支持老的調(diào)用方法蝴乔,就是使用加號(hào)“+”調(diào)用Mixins,在“+”后緊跟Mixins名薇正。
一起來(lái)看個(gè)簡(jiǎn)單的例子囚衔,比如說(shuō)在你的Sass樣式中定義了一個(gè)名叫“error”的Mixin,這個(gè)“error”設(shè)置了一個(gè)參數(shù)“$borderWidth”猴仑,在沒(méi)特別定義外,這個(gè)參數(shù)的默認(rèn)值設(shè)置為“2px”:

/*聲明一個(gè)Mixin叫作“error”*/

@mixin error($borderWidth:2px){

  border:$borderWidth solid #f00;

  color: #f00;

}

/*調(diào)用error Mixins*/

.generic-error {

  @include error();/*直接調(diào)用error mixins*/

}

.login-error {

  @include error(5px);/*調(diào)用error mixins辽俗,并將參數(shù)$borderWidth的值重定義為5px*/

}

less 的混合
在LESS中篡诽,混合是指將定義好的“ClassA”中引入另一個(gè)已經(jīng)定義的“Class”,就像在當(dāng)前的“Class”中增加一個(gè)屬性一樣朱浴。

不過(guò)LESS樣式中聲明Mixins和Sass聲明方法不一樣,他更像CSS定義樣式翰蠢,在LESS可以將Mixins看成是一個(gè)類(lèi)選擇器,當(dāng)然 Mixins也可以設(shè)置參數(shù)躏筏,并給參數(shù)設(shè)置默認(rèn)值呈枉。不過(guò)設(shè)置參數(shù)的變量名是使用“@”開(kāi)頭,同樣參數(shù)和默認(rèn)參數(shù)值之間需要使用冒號(hào)(:)分隔開(kāi)酥泞。

正如Sass混合是的示例,同樣在LESS樣式中定義一個(gè)名叫“error”的Mixin芝囤,這個(gè)“error”設(shè)置了一個(gè)參數(shù)“@borderWidth”辛萍,在沒(méi)有特別定義外,這個(gè)參數(shù)的默認(rèn)值是“2px”:

/*聲明一個(gè)Mixin叫作“error”*/

.error(@borderWidth:2px){

  border:@borderWidth solid #f00;

  color: #f00;

}

/*調(diào)用error Mixins*/

.generic-error {

.error();/*直接調(diào)用error mixins*/

}

.login-error {

  .error(5px);/*調(diào)用error mixins悯许,并將參數(shù)@borderWidth的值重定義為5px*/

}

五辉阶、嵌套


section {
    margin:10px;
}

section nav {
    height:25px;
}

section nav a {
    color: #0982c1;
}

section nav a:hover {
   text-decoration: underline;
}

==========================

section {
  margin:10px;
  nav {
      height:25px;
      a {
          color:#0982c1;
          &:hover {
              text-decoration:underline;
          }
       }
    }
 }

六、繼承

sass的繼承:@extend

.block{

  margin: 10px 5px;

  padding: 2px;

}

p {

  @extend .block;/*繼承.block選擇器下所有樣式*/

  border: 1px solid #eee;

}

ul,ol {

  @extend .block; /*繼承.block選擇器下所有樣式*/

  color: #333;

  text-transform: uppercase;

}

====================================

.block,p,ul,ol {

  margin: 10px 5px;

  padding:2px;

}

p {

  border: 1px solid #eee;

}

ul,ol {

  color:#333;

  text-transform:uppercase;

}

less的繼承:類(lèi)似于mixins


.block {

  margin: 10px 5px;

  padding: 2px;

}

p {

  .block;/*繼承.block選擇器下所有樣式*/

  border: 1px solid #eee;

}

ul,ol {

  .block; /*繼承.block選擇器下所有樣式*/

  color: #333;

  text-transform: uppercase;

}

====================================>

.block {

  margin: 10px 5px;

  padding:2px;

}

p {

  margin: 10px 5px;

  padding:2px;

  border: 1px solid #eee;

}

ul,ol {

  margin: 10px 5px;

  padding:2px;

  color:#333;

  text-transform:uppercase;

}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末垃僚,一起剝皮案震驚了整個(gè)濱河市谆棺,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌改淑,老刑警劉巖炫贤,帶你破解...
    沈念sama閱讀 216,651評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異侍郭,居然都是意外死亡掠河,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,468評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén)爆捞,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人煮甥,你說(shuō)我怎么就攤上這事〕芍猓” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,931評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵砚偶,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我染坯,道長(zhǎng)丘逸,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,218評(píng)論 1 292
  • 正文 為了忘掉前任羞反,我火速辦了婚禮,結(jié)果婚禮上昼窗,老公的妹妹穿的比我還像新娘涛舍。我一直安慰自己,他們只是感情好富雅,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,234評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著没佑,像睡著了一般。 火紅的嫁衣襯著肌膚如雪鬼癣。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,198評(píng)論 1 299
  • 那天待秃,我揣著相機(jī)與錄音痹屹,去河邊找鬼。 笑死暖庄,一個(gè)胖子當(dāng)著我的面吹牛聊替,可吹牛的內(nèi)容都是我干的佃牛。 我是一名探鬼主播淹辞,決...
    沈念sama閱讀 40,084評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼象缀,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了央星?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 38,926評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤毙石,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后徐矩,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體叁幢,經(jīng)...
    沈念sama閱讀 45,341評(píng)論 1 311
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,563評(píng)論 2 333
  • 正文 我和宋清朗相戀三年鳞骤,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了黍判。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,731評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡美旧,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出陈症,到底是詐尸還是另有隱情震糖,我是刑警寧澤,帶...
    沈念sama閱讀 35,430評(píng)論 5 343
  • 正文 年R本政府宣布吊说,位于F島的核電站优炬,受9級(jí)特大地震影響厅贪,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜养涮,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,036評(píng)論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望懈凹。 院中可真熱鬧悄谐,春花似錦、人聲如沸爬舰。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,676評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至烟很,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間雾袱,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,829評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工芹橡, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留望伦,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,743評(píng)論 2 368
  • 正文 我出身青樓屯伞,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親劣摇。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,629評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • sass與less的基本用法 他們都是CSS預(yù)處理框架 本文將從語(yǔ)法暇韧、變量、嵌套懈玻、混入(Mixin)、繼承涂乌、導(dǎo)入、...
    一長(zhǎng)亭閱讀 439評(píng)論 0 0
  • 一骂倘、了解它們的區(qū)別前巴席,首先了解下什么是sass,什么是lesssass與less都是一種動(dòng)態(tài)樣式語(yǔ)言诅需,對(duì)css賦予...
    演員眼緣閱讀 1,571評(píng)論 0 2
  • CSS Preprocess Different 在前端界,有三大 CSS 預(yù)處理器赵刑,分別是 SASS(SCSS)...
    XGHeaven閱讀 13,807評(píng)論 2 13
  • 1.背景介紹 預(yù)處理器: CSS預(yù)處理器是一種語(yǔ)言牵现,用來(lái)為CSS增加一些編程的的特性,無(wú)需考慮瀏覽器的兼容性問(wèn)題瞎疼,...
    xiaoyudesu閱讀 4,125評(píng)論 0 6
  • 從我家門(mén)口到工作的地方,只有一班直達(dá)公交車(chē)贼急,車(chē)次較少,還要繞很遠(yuǎn)的路太抓,每次坐車(chē)就覺(jué)漫長(zhǎng)∽叩校可是,慢慢的竟喜歡上了這趟...
    DUMANMAN閱讀 164評(píng)論 0 0