12. LESS使用方法

中文網(wǎng)站 lesscss.cn/#getting-st…

Less 是一門 CSS 預(yù)處理語言极祸,它擴展了 CSS 語言慈格,增加了變量、Mixin遥金、函數(shù)等特性浴捆,使 CSS 更易維護(hù)和擴展。

Less 可以運行在 Node 或瀏覽器端稿械。

1.安裝

$ npm install -g less

LESS的編譯常用的分為兩種:

1.開發(fā)環(huán)境下(開發(fā)項目的時候);

我們基于less-2.5.3.min.js進(jìn)行編譯:基于link把less文件導(dǎo)入选泻,

但是rel的值必須是stylesheet/less , 這樣導(dǎo)入的JS會找到這些less文件,把less編譯為css;

2.生產(chǎn)環(huán)境下(項目部署上線的時候)

我們需要把less編譯成CSS溜哮,然后讓頁面中導(dǎo)入的都是編譯后的CSS滔金, 需要基于node環(huán)境,并且基于less模塊進(jìn)行編譯(命令操作方式);

安裝NODE(安裝NPM)
$ npm install less -g (MAC最好設(shè)置sudo安裝 sudo npm install less -g);
找到對應(yīng)的less文件目錄茂嗓,在目錄中:$ lessc. xxx.less xxx.css / -x (設(shè)置-x是為了把代碼進(jìn)行壓縮);

<link rel="stylesheet/less" href="less/less.less">
<script src="js/less-2.5.3.min.js"></script>

1餐茵、LESS - 變量

相對CSS3來說,LESS的變量存儲一些值之后可以復(fù)用述吸,并且當(dāng)值發(fā)生改變時忿族,只需要修改變量的值即可;

如下锣笨,當(dāng)@A改成green,整個值為@A的都會改成green,如果項目中有N個元素需要同時改動道批,用起來很方便;

.box{
    color:red;
}

// LESS 
@A:red;
@images:"../images";

.box{
    color:@A;
}
.box2{
    color:@A;
    img{
        background:url('@{images}/XXX.jpg');
    }
}

2错英、LESS - 嵌套

每一個大括號都是私有作用域,在里面用到得變量隆豹,先看是否私有的(是否在當(dāng)前作用域中聲明過和形參變量)椭岩,不是私有的找上級作用域中的;=>"類似于JS作用域鏈機制";

unit: LESS中內(nèi)置的函數(shù),用來設(shè)置或者去除單位的;

// 普通CSS
.contain{
    ...
}

.contain .box{
    ...
}
.contain .box .box2{
    ...
}

// LESS

@W:100px;
@bg:green;
.contain{
    //.contain的樣式
    width:@W;
    
   .box{
   //.contain .box的樣式
   backgroud:@bg;
   @bg:gold;
   
   .box2{
   //.contain .box .box2的樣式;
   }
 }
}

如上代碼璃赡,.box的bg優(yōu)先看自己域有沒有判哥,有就使用自己域,沒有想上找(類似作用域的查找機制);

3碉考、LESS- 函數(shù)

1.每一個樣式類都能被充當(dāng)一個函數(shù)塌计,直接在其它的作用域中調(diào)取執(zhí)行(執(zhí)行特點:不需要傳參,可以不加小括號) =>這種函數(shù)的調(diào)用是把原有的代碼都原封不動的拿過來一份一模一樣的(包括其所有的后代樣式)

2.帶參數(shù)的函數(shù)(創(chuàng)建函數(shù)帶著小括號)侯谁,也是直接點的方式調(diào)用锌仅,但是編譯成為css的時候,函數(shù)不會編譯墙贱,但是函數(shù)執(zhí)行出來的代碼會放到每一個調(diào)取函數(shù)的選擇器中

3.less中的內(nèi)置函數(shù)

  • unit
  • darken
  • lighten

1热芹、函數(shù)調(diào)用應(yīng)用 ——樣式復(fù)用的方法

1.函數(shù)調(diào)用
2.繼承

// 函數(shù)調(diào)用
.box1 {
    @A1: lightgreen;
    @W: 200;
    @H: 200px;

    width: unit(@W, px);
    height: @H;
    border: 5px solid @A1;

    //.box1 img
    img {
        //@W-20這樣被理解為是一個變量名(變量名可以包含-)
        width: unit((@W)-20, px);
        height: unit(unit(@H, px)-20, px);
    }
}

.box2{
    .box1;// 執(zhí)行box1,如果結(jié)構(gòu)一樣,可以復(fù)制全部樣式;
}

// 2.樣式繼承
//寫法1
.box2 {
    &:extend(.box1);
}
//寫法2
.box2:extend(.box1) {}

基于繼承也能實現(xiàn)樣式的公用(原理:兩個樣式類公用同一套代碼嫩痰,但是后代樣式不能被繼承)

2剿吻、函數(shù)調(diào)用應(yīng)用 —— 公共方法調(diào)用

項目中經(jīng)常會有一些公共樣式窍箍,我們一般可以寫一些公共的方法放在文件夾串纺,用的時候直接調(diào)用即可;

// 公共文件內(nèi)容common(用來存放公共方法)

.func_center(@W:100,@H:100){
   position: absolute;
   top: 50%;
   left: 50%;
   margin:unit(-(unit(@H,px)/2),px) 0 0 unit(-@H/2,px);
}

.func_transition(@property:all,@duration:.5s,@timing:linear,@delay:0s){
   transition:@arguments;
}


// less.less內(nèi)容
// 先引入公共方法common;  (reference)表示less文件編譯CSSA時椰棘,此文件不編譯
@import (reference) './common.less';


//less樣式引入公共方法

.box1 {
   @A1: lightgreen;
   @W: 200;
   @H: 200px;

   .func_center(@W, unit(@H, px));  //引入居中的函數(shù);
   // unit: LESS中內(nèi)置的函數(shù)纺棺,用來設(shè)置或者去除單位的(如果有就去除,沒有就加上)
   
   img {
    .func_transition;
    .func_transition(@duration: 1s);
    .func_transition(opacity, .3s, ease, 0s);
       }
}

3邪狞、darken函數(shù)

<button class="btn">點擊</button>

LESS樣式
@C1:pink;
.btn {
    width: 100px;
    height: 50px;
    background: @C1;
    &:hover {
        background: darken(@C1, 20%);
    }
}

鼠標(biāo)滑過之前


image.png

鼠標(biāo)滑過之后祷蝌,顏色變成深20%;


image.png

4、lighten函數(shù)

它增加了元素中顏色的亮度帆卓。 它有以下參數(shù):

color :它代表顏色對象巨朦。

amount :它包含0 - 100%之間的百分比。

方法:它是可選參數(shù)剑令,通過將其設(shè)置為相對糊啡,用于相對于當(dāng)前值進(jìn)行調(diào)整。

@C1:pink;
.btn {
    width: 100px;
    height: 50px;
    background: @C1;
    &:hover {
        background: lighten(@C1, 50%);
    }
}

鼠標(biāo)滑過之前


image.png

鼠標(biāo)滑過之后吁津,顏色變成淺棚蓄,跟darken剛好相反;


image.png

.loop() when ()

.loop(@n) when (@n<=4){
    .loop(@n+1);
    .column-@{n}{
        width:unit(@n*10,%);
    }
}

.loop(1);

// 初始值為@n=1,條件@n<=4;符合條件,每次循環(huán)@n+1;.column 每一個width:@n*10%;


// 編譯后的CSS
.column-4 {
  width: 40%;
}
.column-3 {
  width: 30%;
}
.column-2 {
  width: 20%;
}
.column-1 {
  width: 10%;
}

LESS樣式轉(zhuǎn)譯為CSS

在NODE環(huán)境下,找到less存放文件處梭依,文件欄輸入cmd回車稍算,輸入密令lessc xxx.less xxx.css / -x

xxx.less 指需要編譯的less文件名

xxx.css 指編譯后存放的css文件名 -x 指壓縮文件

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市役拴,隨后出現(xiàn)的幾起案子糊探,更是在濱河造成了極大的恐慌,老刑警劉巖河闰,帶你破解...
    沈念sama閱讀 211,948評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件侧到,死亡現(xiàn)場離奇詭異,居然都是意外死亡淤击,警方通過查閱死者的電腦和手機匠抗,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,371評論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來污抬,“玉大人汞贸,你說我怎么就攤上這事∮』” “怎么了矢腻?”我有些...
    開封第一講書人閱讀 157,490評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長射赛。 經(jīng)常有香客問我多柑,道長,這世上最難降的妖魔是什么楣责? 我笑而不...
    開封第一講書人閱讀 56,521評論 1 284
  • 正文 為了忘掉前任竣灌,我火速辦了婚禮,結(jié)果婚禮上秆麸,老公的妹妹穿的比我還像新娘初嘹。我一直安慰自己,他們只是感情好沮趣,可當(dāng)我...
    茶點故事閱讀 65,627評論 6 386
  • 文/花漫 我一把揭開白布屯烦。 她就那樣靜靜地躺著,像睡著了一般房铭。 火紅的嫁衣襯著肌膚如雪驻龟。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,842評論 1 290
  • 那天缸匪,我揣著相機與錄音翁狐,去河邊找鬼。 笑死豪嗽,一個胖子當(dāng)著我的面吹牛谴蔑,可吹牛的內(nèi)容都是我干的豌骏。 我是一名探鬼主播,決...
    沈念sama閱讀 38,997評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼隐锭,長吁一口氣:“原來是場噩夢啊……” “哼窃躲!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起钦睡,我...
    開封第一講書人閱讀 37,741評論 0 268
  • 序言:老撾萬榮一對情侶失蹤蒂窒,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后荞怒,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體洒琢,經(jīng)...
    沈念sama閱讀 44,203評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,534評論 2 327
  • 正文 我和宋清朗相戀三年褐桌,在試婚紗的時候發(fā)現(xiàn)自己被綠了衰抑。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,673評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡荧嵌,死狀恐怖呛踊,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情啦撮,我是刑警寧澤谭网,帶...
    沈念sama閱讀 34,339評論 4 330
  • 正文 年R本政府宣布,位于F島的核電站赃春,受9級特大地震影響愉择,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜织中,卻給世界環(huán)境...
    茶點故事閱讀 39,955評論 3 313
  • 文/蒙蒙 一锥涕、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧抠璃,春花似錦站楚、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,770評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽拉一。三九已至采盒,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間蔚润,已是汗流浹背磅氨。 一陣腳步聲響...
    開封第一講書人閱讀 32,000評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留嫡纠,地道東北人烦租。 一個月前我還...
    沈念sama閱讀 46,394評論 2 360
  • 正文 我出身青樓延赌,卻偏偏與公主長得像,于是被迫代替她去往敵國和親叉橱。 傳聞我的和親對象是個殘疾皇子挫以,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,562評論 2 349

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