LESS

變量

@color: #4D926F;

#header {
  color: @color;
}

嵌套

&表示串聯(lián)選擇器

#header {
  h1 {
    font-size: 26px;
    font-weight: bold;
  }
  p { font-size: 12px;
    a { text-decoration: none;
      &:hover { border-width: 1px }
    }
  }
  &.float {
    float: left; 
  }
}

函數(shù)運(yùn)算加減乘除

可以分辨出顏色和單位, 可以在復(fù)合屬性中進(jìn)行運(yùn)算

@the-border: 1px;
@base-color: #111;
@red:        #842210;

#header {
  color: @base-color * 3;
  border-left: @the-border;
  border-right: @the-border * 2;
}
#footer { 
  color: @base-color + #003300;
  border-color: desaturate(@red, 10%);
}

@var: 1px + 5;
border: (@width * 2) solid black;

混合(可帶參數(shù)混合(參數(shù)可設(shè)置默認(rèn)值),可進(jìn)行模式匹配,可進(jìn)行表達(dá)式匹配) Mixin

普通混合

.bordered {
  border-top: dotted 1px black;
  border-bottom: solid 2px black;
}
#menu a {
  color: #111;
  .bordered; // <= 混合
}

帶參數(shù)混合(可設(shè)置默認(rèn)值),特殊參數(shù)@arguments包含了所有傳遞進(jìn)來的參數(shù)

.border-radius (@radius) {
  border-radius: @radius;
  -moz-border-radius: @radius;
  -webkit-border-radius: @radius;
}
#header {
  .border-radius(4px); // <= 混合
}

// 設(shè)置默認(rèn)值
.border-radius (@radius: 5px) {
  border-radius: @radius;
  -moz-border-radius: @radius;
  -webkit-border-radius: @radius;
}

#header {
  .border-radius;  // <= 用默認(rèn)值混合
}

// @arguments
.box-shadow (@x: 0, @y: 0, @blur: 1px, @color: #000) {
  box-shadow: @arguments;
  -moz-box-shadow: @arguments;
  -webkit-box-shadow: @arguments;
}
.box-shadow(2px, 5px);
// => 混合后
// => box-shadow: 2px 5px 1px #000;
// => -moz-box-shadow: 2px 5px 1px #000;
// => -webkit-box-shadow: 2px 5px 1px #000;

模式匹配

只有被匹配的混合才會被使用。變量可以匹配任意的傳入值芜繁,而變量以外的固定值就僅僅匹配與其相等的傳入值矗烛,可以匹配多個(gè)參數(shù)啊片。

.mixin (@s, @color) { ... }

.class {
  .mixin(@switch, #888);
}

.mixin (dark, @color) {
  color: darken(@color, 10%);
}
.mixin (light, @color) {
  color: lighten(@color, 10%);
}
.mixin (@_, @color) {
  display: block;
}

// 進(jìn)行模式匹配
@switch: light;

.class {
  .mixin(@switch, #888);
}

// 匹配多個(gè)參數(shù)
.mixin (@a) {
  color: @a;
}
.mixin (@a, @b) {
  color: fade(@a, @b);
}

匹配表達(dá)式

  • 可用的全部比較運(yùn)算有:> >= = =< `<``
  • 關(guān)鍵字true只表示布爾真值页屠,true以外的值都被視示布爾假
  • 逗號,分割,當(dāng)且僅當(dāng)所有條件都符合時(shí)征绎,才會被視為匹配成功穷当。
  • 可以無參數(shù),也可以對參數(shù)進(jìn)行比較運(yùn)算
  • 想基于值的類型進(jìn)行匹配阱表,我們就可以使用is*函數(shù)
  • 可以使用and not 關(guān)鍵字
iscolor
isnumber
isstring
iskeyword
isurl
// 判斷數(shù)值單位
ispixel
ispercentage
isem
.mixin (@a) when (lightness(@a) >= 50%) {
  background-color: black;
}
.mixin (@a) when (lightness(@a) < 50%) {
  background-color: white;
}
.mixin (@a) {
  color: @a;
}

.truth (@a) when (@a = true) { ... }
.mixin (@a) when (@a > 10), (@a < -10) { ... }
.mixin (@a) when (@media = desktop) { ... }
.max (@a, @b) when (@a > @b) { width: @a }
.mixin (@a, @b: 0) when (isnumber(@b)) { ... }
.mixin (@b) when not (@b > 0) { ... }

函數(shù) 及 字符串

Color 函數(shù)

顏色會先被轉(zhuǎn)化成HSL色彩空間, 然后在通道級別操作

lighten(@color, 10%); // 顏色變淺
darken(@color, 10%); // 顏色變深

saturate(@color, 10%); // 增加飽和度
desaturate(@color, 10%); // 減少飽和度

fadein(@color, 10%); // 返回透明度比@color小10%的顏色
fadeout(@color, 10%); // 返回透明度比@color大10%的顏色
fade(@color, 50%); // 把顏色調(diào)到指定透明度

spin(@color, 10); // 色相高10度的顏色
spin(@color, -10); // 色相低10度的顏色

mix(@color1, @color2); // 兩中顏色進(jìn)行混合后的顏色

hue(@color);        // 返回該顏色的色相
saturation(@color); // 返回該顏色的飽和度
lightness(@color);  // 返回該顏色的明度

// 在一種顏色的通道上創(chuàng)建另一種顏色
@new: hsl(hue(@old), 45%, 90%); // @new 將會保持 @old的 色調(diào), 但是具有不同的飽和度和亮度

Math 函數(shù)

round(1.67); // returns `2`
ceil(2.4);   // returns `3`
floor(2.6);  // returns `2`
percentage(0.5); // returns `50%` 轉(zhuǎn)化百分比

javascript 表達(dá)式

@var: `"hello".toUpperCase() + '!'`;

// 同時(shí)使用字符串插值和避免編譯:
@str: "hello";
@var: ~`"@{str}".toUpperCase() + '!'`;

// 訪問JavaScript環(huán)境:
@height: `document.body.clientHeight`;

// 將一個(gè)JavaScript字符串解析成16進(jìn)制的顏色值,
@color: color(`window.colors.baseColor`);
@darkcolor: darken(@color, 10%);

字符串差值

@base-url: "http://assets.fnord.com";
background-image: url("@{base-url}/images/bg.png");

避免編譯 ~

.class {
  filter: ~"ms:alwaysHasItsOwnSyntax.For.Stuff()";
}

注釋

  • /**/ 該注釋編譯后保留
  • // 該注釋編譯后被過濾掉

模塊化

作用域

LESS首先會從本地查找變量或者混合模塊殿如,如果沒找到的話會去父級作用域中查找,直到找到為止.

命名空間

// 將一些變量或者混合模塊打包起來
#bundle {
  .button () {
    display: block;
    border: 1px solid black;
    background-color: grey;
    &:hover { background-color: white }
  }
  .tab { ... }
  .citation { ... }
}

// 在 #header a中像這樣引入 .button:
#header a {
  color: orange;
  #bundle > .button; // <= 引入模塊中的元素
}

import

.less后綴可不帶, .css文件不會被處理

@import "lib.less";
@import "lib";
@import "lib.css";

參考

http://www.bootcss.com/p/lesscss/

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末最爬,一起剝皮案震驚了整個(gè)濱河市涉馁,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌爱致,老刑警劉巖烤送,帶你破解...
    沈念sama閱讀 219,427評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異糠悯,居然都是意外死亡帮坚,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,551評論 3 395
  • 文/潘曉璐 我一進(jìn)店門互艾,熙熙樓的掌柜王于貴愁眉苦臉地迎上來试和,“玉大人,你說我怎么就攤上這事纫普≡暮罚” “怎么了?”我有些...
    開封第一講書人閱讀 165,747評論 0 356
  • 文/不壞的土叔 我叫張陵局嘁,是天一觀的道長溉箕。 經(jīng)常有香客問我,道長悦昵,這世上最難降的妖魔是什么肴茄? 我笑而不...
    開封第一講書人閱讀 58,939評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮但指,結(jié)果婚禮上寡痰,老公的妹妹穿的比我還像新娘。我一直安慰自己棋凳,他們只是感情好拦坠,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,955評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著剩岳,像睡著了一般贞滨。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,737評論 1 305
  • 那天晓铆,我揣著相機(jī)與錄音勺良,去河邊找鬼。 笑死骄噪,一個(gè)胖子當(dāng)著我的面吹牛尚困,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播链蕊,決...
    沈念sama閱讀 40,448評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼事甜,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了滔韵?” 一聲冷哼從身側(cè)響起逻谦,我...
    開封第一講書人閱讀 39,352評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎奏属,沒想到半個(gè)月后跨跨,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,834評論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡囱皿,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,992評論 3 338
  • 正文 我和宋清朗相戀三年勇婴,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片嘱腥。...
    茶點(diǎn)故事閱讀 40,133評論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡耕渴,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出齿兔,到底是詐尸還是另有隱情橱脸,我是刑警寧澤,帶...
    沈念sama閱讀 35,815評論 5 346
  • 正文 年R本政府宣布分苇,位于F島的核電站添诉,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏医寿。R本人自食惡果不足惜栏赴,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,477評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望靖秩。 院中可真熱鬧须眷,春花似錦、人聲如沸沟突。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,022評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽惠拭。三九已至扩劝,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背棒呛。 一陣腳步聲響...
    開封第一講書人閱讀 33,147評論 1 272
  • 我被黑心中介騙來泰國打工葡公, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人条霜。 一個(gè)月前我還...
    沈念sama閱讀 48,398評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像涵亏,于是被迫代替她去往敵國和親宰睡。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,077評論 2 355

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