less的用法

less是一門css預(yù)處理語言柠并,它擴(kuò)充了 CSS 語言岭接,增加了諸如變量、混合(mixin)臼予、函數(shù)等功能鸣戴,讓 CSS 更易維護(hù)、方便制作主題粘拾、擴(kuò)充窄锅。良好的使用可以讓代碼輸入節(jié)省很多時(shí)間

一般less的使用,可以下載一個(gè)叫koala的軟件 百度即可缰雇,安裝時(shí)最好不要有中文路徑入偷,然后在文件下創(chuàng)建一個(gè)Less格式(文件后綴.less)的文件 在koala中添加文件夾后右鍵編譯文件,就會(huì)生成一個(gè)css文件械哟,這樣就可以在less文件中書寫時(shí)疏之,就會(huì)把編譯后的css樣式自動(dòng)寫在css文件里,使用的時(shí)候引用css文件 就可以了暇咆。

下面是less一些常見的用法:
首先了解什么是變量锋爪,變量就是沒有固定的值是可以改變的,在使用時(shí)我們需要給變量取個(gè)名字叫變量名爸业,然后在進(jìn)行聲明

  1. 變量: 存儲(chǔ)數(shù)據(jù)的容器其骄,數(shù)據(jù)本身可以修改
  2. 聲明:@變量名稱:變量的值;
    less的使用可以有幾種用法

使用

屬性值中:@變量名稱

選擇器名中:@{變量名稱}

屬性名中:@{變量名稱}

在路徑中使用:@{變量名稱} **注意加引號(hào)

在變量值中使用:@變量名稱

在變量名中使用:@變量名稱

@w: 100px;
@b: box;
@bg: background;

#{@b} {
    width: @w;
    height: @w;
    @{bj}: red
}

顯示為

#box {
    width: 100px;
    height: 100px;
    background: red;
}

可以給變量增添運(yùn)算

#{@b}1 {
  width: @w*2;
  height: @w*3;
  background: red;
}  

顯示為

#box1 {
    width: 200px;
    height: 300px;
    background: red;
}

運(yùn)算的使用

運(yùn)算時(shí)的單位識(shí)別
如果運(yùn)算符的左右兩側(cè)都有單位,
加減乘除識(shí)別的是運(yùn)算符左側(cè)的單位
乘法識(shí)別的是運(yùn)算符右側(cè)的單位

@w: 100rem;
@rem: 64px;
#box {
    width: @w/@rem;
    width: @w*@rem;
    width: @w+@rem;
    width: @w-@rem;
}

顯示為

#box {
    width: 1.5625rem;
    width: 6400px;
    width: 164rem;
    width: 36rem;
}

*變量名重名之后扯旷,后邊會(huì)覆蓋前邊的


@w2: 100;

@rem2: 64;

#box {
    width: @w2+@rem2+px;
}

顯示

#box {
    width:164 px年栓; 
}

這樣寫在單位和值之間用空格,盡量在變量中添加單位


作用域

寫在{}之間 叫做局部變量,只可以在{}之間起作用

@w: 100px;
.box {
    @w: 200px; 
    width: @w;
}
#box {
    width: @w;
}

顯示

.box {
    width: 200px;
}
#box {
    width: 100px;
}


less中的嵌套

優(yōu)先識(shí)別自己樣式

#box {
    @w: 100px;
    width: @w*3;
    height: 200px;
}
li {
    @w: 200px;
    width: @w;
}
div {
    width:@w;
}
a {
  color: red;
  &:hover { // &上一級(jí)
    color: blue;
  }
}

顯示

#box {
    width: 300px;
    height: 200px;
}
li {
  width: 200px;
}
a {
  color: red;
}
#box a:hover {
    color: blue;
}

混合

添加多個(gè)樣式給一個(gè)變量中去使用

.bor {
    background: red;
    border: 2px solid #000;
}
 //想讓樣式在css中不編譯薄霜,添加一個(gè)()在名字后 例.bor() {...}
#box {
    width: 100px;
    height: 100px;
    .border
}
.div {
    width: 200px;
    height: 200px;
    .border; 
}

顯示

#box {
    width: 100px;
    height: 100px;
    background: red;
    border: 2px solid #000;
}
.div {
    width: 200px;
    height: 200px;
    background: red;
    border: 2px solid #000;
}

帶參數(shù)的混合

.name(@color) {
    border: 1px solid @color;
}
#box {
    .name(red)
}
#box2 {
    .name(blue)
}
#box3 {
    .name(#000)
}

顯示

#box {
    border: 1px solid #ff0000;
}
#box2 {
    border: 1px solid #0000ff;
}
#box3 {
     border: 1px solid #000000;
}

帶多個(gè)參數(shù)的混合

**只要給了@屬性后某抓, 下面的樣式中就必須要添加具體的數(shù)值

.name(@w,@color) {
    border: @w solid @color;
}
#box {
    .name(1px,red);
}

div {
  .name(red);
}
//上面的沒有給@w數(shù)值纸兔,2個(gè)變量只有1個(gè) 就不能顯示,所以是錯(cuò)誤的
#box2 {
    .name(2px,blue);
}
#box3 {
    .name(@color:#000,@w:3px);
}

顯示

#box {
     border: 1px solid #ff0000;
}
#box2 {
    border: 2px solid #0000ff;
}
#box3 {
     border: 3px solid #000000;
}

添加了參數(shù)默認(rèn)值的混合

.name{@w:1px,@color:red} {
    border: @w solid @color;
}
#box {
    .name;
}
#box2 {
    .name()
}
#box3 {
    .name(2px,blue);
}
#box4 {
    .name(@w:2px,@color:yellow);
}
.numble(@x,@y) {
    @name: ((@x+@y) / 2);
}
div {
    .numble(16px,50px);
    padding: @name;
}

結(jié)果

#box {
    border: 1px solid #ff0000否副;
}
#box2 {
    border: 1px solid #ff0000汉矿;
}
#box3 {
    border:2px solid #0000ff;
}
#box4 {
    border: 2px solid #ffff00备禀;
}
div {
    padding: 33px;
}

這樣Less就可以在多項(xiàng)樣式上添加更加方便

.boxS() {
    box-shadow+: 0 0 10px #000;
}
#box {
    .boxS;
    box-shadow+: inset 0 0 10px red;
}

顯示

#box {
     box-shadow: 0 0 10px #000, inset 0 0 10px red;
}

混合中的判斷

給樣式設(shè)置條件洲拇,只有條件成立后才會(huì)識(shí)別其中的樣式

.width(@w) when (@w >= 200px)
{
  width:@w;
}
#box1 {
    .width(100px);
}
#box2 {
    .width(200px);
}
#box3 {
    .width(300px);
}

在css中顯示

#box2 {
  width: 200px;
}
#box3 {
  width: 300px;
}

給出不同的條件下的樣式曲尸,根據(jù)條件成立來選取不同的樣式

   .name(@w,@c,@dir) when (@dir = 1)
   { 
    border-top: @w solid @c;
   }
   .name(@w,@c,@dir) when (@dir = 2)
   {
    border-right: @w solid @c;
   }
   .name(@w,@c,@dir) when (@dir = 3)
   {
    border-bottom: @w solid @c;
   }
   .name(@w,@c,@dir) when (@dir = 4)
   {
    border-left: @w solid @c;
   }
   
   #box {
    .name(2px,red,3);
   }

結(jié)果

#box {
  border-bottom: 2px solid #ff0000;
}

上面設(shè)置不同的變量赋续,當(dāng)滿足變量所要的條件后,就會(huì)執(zhí)行其中的內(nèi)容另患。當(dāng)下面需要變量的樣式時(shí)纽乱,就會(huì)找到所含的變量名稱后,變量有確定數(shù)值的就按照變量走昆箕,沒有確定數(shù)值鸦列,就需要自己設(shè)置,當(dāng)對應(yīng)設(shè)置的數(shù)值滿足上面變量的條件后鹏倘,就會(huì)執(zhí)行

> < =  >=  <=
.name(@w,@c,@dir) when (判斷條件)
{
    //條件成立之后薯嗤,執(zhí)行的內(nèi)容
}
.name(@dir) when (@dir = top)
{
    border-top: 10px solid #000;    
}
.name(@dir) when (@dir = right)
{
    border-right: 10px solid #000;  
}
.name(@dir) when (@dir = bottom)
{
    border-bottom: 10px solid #000;     
}
.name(@dir) when (@dir = left)
{
    border-left: 10px solid #000;   
}
#box {
    .name(left); //找到所有叫 .name()的混合
}


循環(huán)

.name(@numble) when (@numble >= 0)
   {
    .name(@numble - 10); //函數(shù)調(diào)用
    width: @numble; //執(zhí)行語句
   }
   .box {
    .name(100px);
   }

結(jié)果

.box {
  width: 0px;
  width: 10px;
  width: 20px;
  width: 30px;
  width: 40px;
  width: 50px;
  width: 60px;
  width: 70px;
  width: 80px;
  width: 90px;
  width: 100px;
}

從小到大排列 先寫函數(shù)調(diào)用后寫執(zhí)行語句;

函數(shù)調(diào)用,都是上面的執(zhí)行完后才會(huì)往下執(zhí)行纤泵,當(dāng).box給了.name變量的數(shù)值為100px往后執(zhí)行骆姐;

滿足了when >=0,繼續(xù)往下執(zhí)行;

這時(shí).name為100px-10;繼續(xù)往下width: 就為90px了捏题;

這時(shí) .name(@numble - 10);這一條還沒執(zhí)行完玻褪,會(huì)繼續(xù)在條件滿足下運(yùn)行,當(dāng)最后結(jié)果為不小于0后涉馅;

就會(huì)往下執(zhí)行width=0了;

然后繼續(xù)回到上面執(zhí)行之前的結(jié)果黄虱,一直到最后為結(jié)果顯示

從大到小排列 先執(zhí)行語句后寫寫函數(shù)調(diào)用

.name(@numble) when (@numble >= 0)
   {
    width: @numble; //執(zhí)行語句
    .name(@numble - 10);//函數(shù)調(diào)用
   }
   .box {
    .name(100px);
   }

結(jié)果

.box {
  width: 100px;
  width: 90px;
  width: 80px;
  width: 70px;
  width: 60px;
  width: 50px;
  width: 40px;
  width: 30px;
  width: 20px;
  width: 10px;
  width: 0px;
}

當(dāng).box給了最上面.name數(shù)值條件得到滿足稚矿,直接執(zhí)行width: 為100px了;

然后往下執(zhí)行捻浦,-10后 繼續(xù)執(zhí)行width: 90px;...

后面循環(huán) 直到最后結(jié)果小于0的條件晤揣。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市朱灿,隨后出現(xiàn)的幾起案子昧识,更是在濱河造成了極大的恐慌,老刑警劉巖盗扒,帶你破解...
    沈念sama閱讀 211,194評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件跪楞,死亡現(xiàn)場離奇詭異缀去,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)甸祭,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,058評論 2 385
  • 文/潘曉璐 我一進(jìn)店門缕碎,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人池户,你說我怎么就攤上這事咏雌。” “怎么了校焦?”我有些...
    開封第一講書人閱讀 156,780評論 0 346
  • 文/不壞的土叔 我叫張陵赊抖,是天一觀的道長。 經(jīng)常有香客問我寨典,道長氛雪,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,388評論 1 283
  • 正文 為了忘掉前任凝赛,我火速辦了婚禮注暗,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘墓猎。我一直安慰自己捆昏,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,430評論 5 384
  • 文/花漫 我一把揭開白布毙沾。 她就那樣靜靜地躺著骗卜,像睡著了一般。 火紅的嫁衣襯著肌膚如雪左胞。 梳的紋絲不亂的頭發(fā)上寇仓,一...
    開封第一講書人閱讀 49,764評論 1 290
  • 那天,我揣著相機(jī)與錄音烤宙,去河邊找鬼遍烦。 笑死,一個(gè)胖子當(dāng)著我的面吹牛躺枕,可吹牛的內(nèi)容都是我干的服猪。 我是一名探鬼主播,決...
    沈念sama閱讀 38,907評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼拐云,長吁一口氣:“原來是場噩夢啊……” “哼罢猪!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起叉瘩,我...
    開封第一講書人閱讀 37,679評論 0 266
  • 序言:老撾萬榮一對情侶失蹤膳帕,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后薇缅,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體危彩,經(jīng)...
    沈念sama閱讀 44,122評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡攒磨,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,459評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了恬砂。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片咧纠。...
    茶點(diǎn)故事閱讀 38,605評論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖泻骤,靈堂內(nèi)的尸體忽然破棺而出漆羔,到底是詐尸還是另有隱情,我是刑警寧澤狱掂,帶...
    沈念sama閱讀 34,270評論 4 329
  • 正文 年R本政府宣布演痒,位于F島的核電站,受9級(jí)特大地震影響趋惨,放射性物質(zhì)發(fā)生泄漏鸟顺。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,867評論 3 312
  • 文/蒙蒙 一器虾、第九天 我趴在偏房一處隱蔽的房頂上張望讯嫂。 院中可真熱鬧,春花似錦兆沙、人聲如沸欧芽。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,734評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽千扔。三九已至,卻和暖如春库正,著一層夾襖步出監(jiān)牢的瞬間曲楚,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,961評論 1 265
  • 我被黑心中介騙來泰國打工褥符, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留龙誊,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,297評論 2 360
  • 正文 我出身青樓喷楣,卻偏偏與公主長得像趟大,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子抡蛙,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,472評論 2 348

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