在這裡我把他簡單的理解為類物件
.bordered
// args非關鍵字引數 kwargs關鍵字引數
border-top
:1px dotted black;
border-bottom
:2px solid black;
}//編譯後
//在css檔案中輸出的mixin
.bordered
//在css檔案中不輸出mixin
//在mixin 類後面加上一對()就不會在生成的css中輸出了
.bordered()
my-hover-mixin()
}button
mixin的集中變形
//mixin不接受引數
.border-radius()
//mixin接受引數
.border-radius
(@radius)
#header
.button
mixin也可以設定預設引數
.border-radius
(@radius
:5px)
引數之間可以使用逗號或者分號分隔
建議使用分號
逗號在less中有兩個用法
1、css列表的分隔
2、混合引數的分隔
mixin
(@color)
.mixin
(@color
; @padding
: 2)
.mixin
(@color
; @padding
; @margin
: 2)
.some .selector div
注意:mixin會匹配所有符合引數列表的類方法
可乙個類中的引數分別命名(轉變為關鍵字引數)
這樣在呼叫類時使用的引數列表只要帶有關鍵字就可以不用理會他的引數順序
mixin
(@color
: black;
@margin
: 10px;
@padding
: 20px)
.class1
.class2
mixin的模式匹配
通常乙個模型要寫很多遍,這是我們就可以用匹配模式
.makediv
(s,@w
:100px,@h
:100px)
.makediv
(c,@w
:100px,@h
:100px)
//這裡的第乙個字元被稱為匹配字元
.divforclassmake
可以發現上面的類屬性中有很多重複的預設屬性部分
我們可以將類重構,並構建類似於建構函式
.makediv
(s,@w
:100px,@h
:100px)
.makediv
(c,@w
:100px,@h
:100px)
.makediv
(@_,@reset...)
//這樣就會在每次呼叫.makediv時自動呼叫這個函式
.divforclassmake
!important關鍵字
在mixin呼叫之後使用!important關鍵字
將其繼承的所有屬性標記為!important:
.foo
.unimportant
.important
>輸出為.important
.fool(@w
:100px)
.unimportant
.important
如果引用的類中定義了變數,而呼叫者的作用域中使沒有定義該變數
那麼呼叫者的作用域中將使用該定義
如果呼叫者的作用域中已經定義了該變數,那麼就會覆蓋掉引用類中的定義
.mixininit()
.caller
//通過這一點我們可以做到像函式一樣的return返回
//在mixin中定義的mixin也可以返回 類似於命名空間內的引用
.unlock
(@value)
}#namespace
less學習 less的混合(mixin)
上篇 less的巢狀規則 本篇我們來講述一下什麼是混合 mixin 混合簡單的理解就是把乙個css規則嵌入到另乙個css規則中,那麼這該怎麼理解學習呢?我們先來看一下乙個簡單的混合 a,b mixin class mixin id 編譯後 a,b mixin class mixin id 從上面的例...
less學習 混合
在 less 中我們可以定義一些通用的屬性集為乙個class,然後在另乙個class中去呼叫這些屬性.下面有這樣乙個class bordered 那如果我們現在需要在其他class中引入那些通用的屬性集,那麼我們只需要在任何class中像下面這樣呼叫就可以了 menu a post a.border...
less 函式 Less 混合
本節我們學習 less 中的混合 mixin 混合是一種將一組屬性從乙個規則集包含或混入到另乙個規則集的方法。簡單一點來說,其實混合就有點類似程式語言中的函式,通過這種方式,可以在 中實現復用。如果還不懂,下面我們通過實際例子來看一下混合的使用。我們先來看下面這段 less xkd good 可以很...