2017-3-23 less

Parent Selectors (父級選擇器)

1只壳、使用&引用父選擇器
LESS:

.public {
  width: 100px;
  height: 100px;
  & > p {
    background-color: #000;
  }
  &:hover {
    background-color: #fff;
  }
  :hover {
    background-color: #f48;
  }
  &-btn {
    background-color: #f60;
  }
  &,&-b {
    background-color: #ccc;
  }
}

CSS:

.public {
  width: 100px;
  height: 100px;
}
.public > p {
  background-color: #000;
}
.public:hover {
  background-color: #fff;
}
.public :hover {
  background-color: #f48;
}
.public-btn {
  background-color: #f60;
}
.public,
.public-b {
  background-color: #ccc;
}

2、Changing selector order (改變選擇器順序)
LESS:

.header {
  .menu {
    border-radius: 5px;
    .abc & {
      background-image: url('images/button-background.png');
    }
    .efg & {
      background-image: url('images/button-background.png');
    }
  }
}

CSS:

.header .menu {
  border-radius: 5px;
}
.abc .header .menu {
  background-image: url('images/button-background.png');
}
.efg .header .menu {
  background-image: url('images/button-background.png');
}

3、&還可以用于生成一個逗號分割列表的所有可能的選擇器排列
LESS:

.a, .b, .c, .d {
  border-top: 2px dotted #366;
  & + & {
    border-top: 1px solid #ccc;
  }
}

CSS:

.a,
.b,
.c,
.d {
  border-top: 2px dotted #366;
}
.a + .a,
.a + .b,
.a + .c,
.a + .d,
.b + .a,
.b + .b,
.b + .c,
.b + .d,
.c + .a,
.c + .b,
.c + .c,
.c + .d,
.d + .a,
.d + .b,
.d + .c,
.d + .d {
  border-top: 1px solid #ccc;
}

Merge (合并屬性)

1、merge特性可以從多個屬性中將值集合集合到一個單一屬性之下的逗號或空格分割屬性列表中臭笆。對于諸如background和transform之類的屬性來說,merge非常有用秤掌。
LESS:

.mixin() {
  background+: url(../images/1.png) no-repeat;
}
.myclass {
  .mixin();
  background+:#000; 
}

CSS:

.myclass {
  background: url(../images/1.png) no-repeat, #000;
}

Loops (循環(huán))

1愁铺、
LESS:

.generate-columns(5);

.generate-columns(@n, @i: 1) when (@i =< @n) {
  .column-@{i} {
    width: (@i * 100% / @n);
  }
  .generate-columns(@n, (@i + 1));
}

CSS:

.column-1 {
  width: 20%;
}
.column-2 {
  width: 40%;
}
.column-3 {
  width: 60%;
}
.column-4 {
  width: 80%;
}
.column-5 {
  width: 100%;
}

Mixin Guards(帶條件的Mixin)

1、
LESS:

.mixin (@a) when (lightness(@a) >= 50%) {
  background-color: black;
}
.mixin (@a) when (lightness(@a) < 50%) {
  background-color: white;
}
.mixin (@a) {
  color: @a;
}
.class1 { .mixin(#ddd) }
.class2 { .mixin(#555) }

CSS:

.class1 {
  background-color: black;
  color: #ddd;
}
.class2 {
  background-color: white;
  color: #555;
}

2闻鉴、Guard comparison operators (Guard中的比較運算符)
guards中可用的比較運算符的完整列表為: >, >=, =, =<, <茵乱。此外,關(guān)鍵字true是讓兩個mixins等價的唯一真值孟岛。

3瓶竭、Guard logical operators (Guard邏輯運算符)
使用and關(guān)鍵字來組合guards

LESS:

@media: mobile;
@media: desktop;
.mixin (@a) when (@media = mobile) { 
  width: 100px;
  height: 100px;
}
.mixin (@a) when (@media = desktop) { 
  width: 200px;
  height: 200px;
}
.max (@a; @b) when (@a > @b) { width: @a }
.max (@a; @b) when (@a < @b) { width: @b }
.class1 { .mixin(100px) }
.class2 { .mixin(200px) }

CSS:

.class1 {
  width: 200px;
  height: 200px;
}
.class2 {
  width: 200px;
  height: 200px;
}

函數(shù)

color(string) 解析顏色,將代表顏色的字符串轉(zhuǎn)換為顏色值
convert(value,unit) 將數(shù)字從一種單位轉(zhuǎn)換到另一種單位.第一個參數(shù)為帶單位的數(shù)值,第二個參數(shù)為單位.
ceil(number)向上取整
floor(number)向下取整
percentage(number)將浮點數(shù)轉(zhuǎn)換為百分比字符串
round(number)四舍五入取整
sqrt(number)計算一個數(shù)的平方根,并原樣保持單位
pow(number,number)設(shè)第一個參數(shù)為A,第二個參數(shù)為B,返回A的B次方.
mod(number,number)返回第一個參數(shù)對第二參數(shù)取余的結(jié)果.
min(value1, ..., valueN)返回一系列值中最小的那個.
max(value1, ..., valueN)返回一系列值中最大的那個.
abs(number)計算數(shù)字的絕對值,并原樣保持單位
sin(number)正弦函數(shù)
cos(number)余弦函數(shù)
asin(number)反正弦函數(shù).返回以弧度為單位的角度,區(qū)間在 -PI/2 到 PI/2之間.
acos(number)反余弦函數(shù).區(qū)間在 0 到 PI之間.
tan(number)正切函數(shù)
atan(number)反正切函數(shù)
pi()返回圓周率 π (pi)
isnumber(value)如果待驗證的值為數(shù)字則返回 true,否則返回 false
isstring(value)如果待驗證的值是字符串則返回 true,否則返回 false
iscolor(value)如果待驗證的值為顏色則返回 true,否則返回 false

練習(xí)
1、四角的半徑
LESS:

.border-radius-custom (@topleft: 5px, @topright: 5px, @bottomleft: 5px, @bottomright: 5px) {
  -webkit-border-radius: @topleft @topright @bottomright @bottomleft;
  -moz-border-radius: @topleft @topright @bottomright @bottomleft;
  border-radius: @topleft @topright @bottomright @bottomleft;
}
 
#somediv {
  .border-radius-custom(20px, 20px, 0px, 0px);
}

CSS:

#somediv {
  border-radius: 20px 20px 0px 0px;
}

2渠羞、方塊陰影
LESS:

.box-shadow (@x: 0px, @y: 3px, @blur: 5px, @alpha: 0.5) {
  -webkit-box-shadow: @x @y @blur rgba(0, 0, 0, @alpha);
  -moz-box-shadow: @x @y @blur rgba(0, 0, 0, @alpha);
  box-shadow: @x @y @blur rgba(0, 0, 0, @alpha);
}
 
#somediv {
  .box-shadow(5px, 5px, 6px, 0.3);
}

CSS:

#somediv {
  box-shadow: 5px 5px 6px rgba(0, 0, 0, 0.3);
}

3斤贰、 轉(zhuǎn)換/旋轉(zhuǎn)
LESS:

.transform (@rotate: 90deg, @scale: 1, @skew: 1deg, @translate: 10px) {
  -webkit-transform: rotate(@rotate) scale(@scale) skew(@skew) translate(@translate);
  -moz-transform: rotate(@rotate) scale(@scale) skew(@skew) translate(@translate);
  -o-transform: rotate(@rotate) scale(@scale) skew(@skew) translate(@translate);
  -ms-transform: rotate(@rotate) scale(@scale) skew(@skew) translate(@translate);
  transform: rotate(@rotate) scale(@scale) skew(@skew) translate(@translate);
}
#someDiv {
  .transform(5deg, 0.5, 1deg, 0px);
}

CSS:

#someDiv {
  -webkit-transform: rotate(5deg) scale(0.5) skew(1deg) translate(0px);
  transform: rotate(5deg) scale(0.5) skew(1deg) translate(0px);
}

4 、不同背景圖
LESS:

@base-url: "../images ";  
@icon-image-url: "a.png";  
  
.icon (@index) {  
     background-image: url("@{base-url}/@{icon-image-url}");  
     background-position:  0px (0 - (10 * @index));  
}  
  
.icon (@_) {  
    width: 50px;  
    height: 50px;  
}  
 
#icon1 {  
    .icon (1);  
}  
  
#icon2 {  
    .icon (2);  
}  
  
#icon3 {  
    .icon (3);  
}  

CSS:

#icon1 {
  background-image: url("../images/images/a.png");
  background-position: 0px -10;
  width: 50px;
  height: 50px;
}
#icon2 {
  background-image: url("../images/images/a.png");
  background-position: 0px -20;
  width: 50px;
  height: 50px;
}
#icon3 {
  background-image: url("../images/images/a.png");
  background-position: 0px -30;
  width: 50px;
  height: 50px;
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末次询,一起剝皮案震驚了整個濱河市荧恍,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌屯吊,老刑警劉巖送巡,帶你破解...
    沈念sama閱讀 222,590評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異盒卸,居然都是意外死亡骗爆,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,157評論 3 399
  • 文/潘曉璐 我一進(jìn)店門世落,熙熙樓的掌柜王于貴愁眉苦臉地迎上來淮腾,“玉大人,你說我怎么就攤上這事屉佳」瘸” “怎么了?”我有些...
    開封第一講書人閱讀 169,301評論 0 362
  • 文/不壞的土叔 我叫張陵武花,是天一觀的道長圆凰。 經(jīng)常有香客問我,道長体箕,這世上最難降的妖魔是什么专钉? 我笑而不...
    開封第一講書人閱讀 60,078評論 1 300
  • 正文 為了忘掉前任挑童,我火速辦了婚禮,結(jié)果婚禮上跃须,老公的妹妹穿的比我還像新娘站叼。我一直安慰自己,他們只是感情好菇民,可當(dāng)我...
    茶點故事閱讀 69,082評論 6 398
  • 文/花漫 我一把揭開白布尽楔。 她就那樣靜靜地躺著,像睡著了一般第练。 火紅的嫁衣襯著肌膚如雪阔馋。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,682評論 1 312
  • 那天娇掏,我揣著相機與錄音呕寝,去河邊找鬼。 笑死婴梧,一個胖子當(dāng)著我的面吹牛下梢,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播塞蹭,決...
    沈念sama閱讀 41,155評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼怔球,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了浮还?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 40,098評論 0 277
  • 序言:老撾萬榮一對情侶失蹤闽巩,失蹤者是張志新(化名)和其女友劉穎钧舌,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體涎跨,經(jīng)...
    沈念sama閱讀 46,638評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡洼冻,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,701評論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了隅很。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片撞牢。...
    茶點故事閱讀 40,852評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖叔营,靈堂內(nèi)的尸體忽然破棺而出屋彪,到底是詐尸還是另有隱情,我是刑警寧澤绒尊,帶...
    沈念sama閱讀 36,520評論 5 351
  • 正文 年R本政府宣布畜挥,位于F島的核電站,受9級特大地震影響婴谱,放射性物質(zhì)發(fā)生泄漏蟹但。R本人自食惡果不足惜躯泰,卻給世界環(huán)境...
    茶點故事閱讀 42,181評論 3 335
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望华糖。 院中可真熱鬧麦向,春花似錦、人聲如沸客叉。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,674評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽十办。三九已至秀撇,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間向族,已是汗流浹背呵燕。 一陣腳步聲響...
    開封第一講書人閱讀 33,788評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留件相,地道東北人再扭。 一個月前我還...
    沈念sama閱讀 49,279評論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像夜矗,于是被迫代替她去往敵國和親泛范。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,851評論 2 361

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