less開發(二) 基本語法

2021-07-24 19:00:44 字數 4067 閱讀 1322

(一)巢狀規則

less可以讓我們以巢狀的方式編寫層疊樣式,先看下面這段css;

.box-a

.hd.box-a

.bd.txt

.box-a

.other

在less中,可以用巢狀方式寫以上**:

.box-a

.bd}

.other

}

**變更簡潔與直觀,與dom樹結構很相似。

& 符號

如果在巢狀規則中,想寫串聯選擇器,而不是寫後代選擇器,可以用 & 符號,如:hover 偽類寫法

.box-a}}

}

編譯後

.box-a

.hd.box-a

.hda

:hover

(二)變數

定義@名:值; (需要在末尾加上分號)

@color:#f60;

p

編譯後

p

字串插入變數值

@url:'../images/';

psp.png');

}

編譯後:

p

變數之間賦值

編譯後:

p

預解析

(1)less的變數呼叫,不需要在變數宣告後才可以使用;

(2)同乙個變數定義多次,在當前作用域中最後一次定義的將被使用

;編譯後:

p

(三)混合(mixins)

呼叫已有的class或id 屬性集  

#moda

.flp

編譯後:

#moda

.flp

帶引數(或者空引數)的混合,編譯後不會暴露在css檔案中

#moda()

.fl()

p

編譯後(css檔案沒有混合模組的**):

p

設定預設引數

.mixins(@w;

@h:100px)

p

編譯後:

p

引數

(2)如果在混合的定義或者是呼叫中找到至少乙個分號,就會假設引數是使用分號分隔的,所有的逗號都屬於引數中的一組值的分隔符。

.mixins(@font;@h)

p

編譯後:

p

(3)… 設定不限制引數的個數;@arguments 獲取全部的引數值

.mixins(...)

p

編譯後:

p

同名混合不會覆蓋,符合且都會呼叫

.mixins()

.mixins()

p

編譯後:

p

匹配

(1)根據引數數量匹配

.mixins()

.mixins(@fz)

.mixins(@w;

@h)p

編譯後:

p

(2)指定匹配

p編譯後:

p

表示式匹配 guards,支援的表示式匹配運算子包括:> >= = =< < (注意:相等是 = )

(1)單個條件

p編譯後:

p

(2)多條件,用逗號隔開:符合其中之一即可匹配

ph1編譯後:

p

h1

(3)多條件,用 and 隔開:全部符合才匹配

ph1編譯後:

p

(四)遞迴

可以在定義的混合模組自我呼叫(遞迴)

迴圈輸出的例子

.loop(@n;@i:1) when(@i

<=@n)

.loop(@n;(@i+1));

}.bg

編譯後:

.bg

.row-1

.bg.row-2

.bg.row-3

.bg.row-4

.bg.row-5

(五)作用域

作用域跟其他程式語言類似,首先會從本地查詢變數或者混合模組,如果沒找到的話會去父級作用域中查詢,逐層遞增,直到找到為止,否則報錯。

@color:#f60;

p

編譯後:

p

(六)命名空間

為了更好組織 css 或者單純是為了更好的封裝,可以新增命名空間

.index

}p

編譯後:

p

(七)注釋

/編譯後保留css原有注釋/

// 同時支援雙反斜槓,但編譯後不會保留在css檔案中

(八)匯入(import)

其實就是把樣式內嵌到指定的檔案中,不會帶來額外請求

(1)嵌入less檔案

@import

"layout.less"

;

(2)嵌入css檔案

@import (inline) "base.css"

;

(八)避免編譯

如果需要輸出一些不正確的 css 語法或者使用一些 less 不認識的專有語法,編譯為less檔案過程中會出現錯誤,這時候可以用避免編譯來處理。

要輸出這樣的值我們可以在字串前加上乙個 ~

看下出錯的例子:

p

編譯過程中報錯

所以需要用到避免編譯的語法

p

避免編譯也支援字串插入值

@opacity:50;

p)";

}

編譯後:

p

less基本語法

less的注釋有兩種方式,一種為css用的 這種注釋的方法會被less所編譯成css。另一種為 這種不會被less所編譯 less 會被編譯 不會被編譯css輸出 會被編譯 less中用 變數名 值的方法來生命變數 less test width 100px test color red box c...

less基本語法筆記

以 開頭的注釋,不會被編譯到css檔案中 以 包裹的注釋會被編譯到css檔案中 a 使用 來宣告乙個變數 例 red red mainb 作為普通屬性值來使用 直接使用 red c 作為選擇器和屬性名使用 的形式 variables my selector banner usage d 作為url ...

less的使用 基本語法 編譯

注釋 會被刪除 不會被刪除1.變數為屬性值定義變數 變數名 變數值 使用變數 屬性 變數名 變數 main color 333 用法 body2.變數為屬性或者為選擇器定義變數 變數名 變數值 使用變數 屬性值 變數 property color 屬性 用法 body 333 變數 myselect...