我們先看以下一段例子:
// less最上方,其實相當於定義了乙個名為「.rounded-corners 」的函式,它有乙個引數叫@radius,預設值為5px。然後對於接著下來的樣式規則,它先判定其是否符合css語法不,符合直接輸出跳過,不符合就當成函式。.rounded-corners (@radius: 5px)
#header
#footer
/* 生成的 css */
#header
#footer
有了變數與函式,css就可以實現更大規模的重用了!
有些情況下,我們想根據傳入的引數來改變混合的預設呈現,比如下面這個例子:
.mixin (@s, @color)
.class
如果想讓.mixin根據不同的@switch值而表現各異,如下這般設定:
.mixin (dark, @color)
.mixin (light, @color)
.mixin (@_, @color)
現在,如果執行:
@switch: light;
.class
就會得到下列css:
.class
如上,.mixin就會得到傳入顏色的淺色。如果@switch設為dark,就會得到深色。
具體實現如下:
只有被匹配的混合才會被使用。變數可以匹配任意的傳入值,而變數以外的固定值就僅僅匹配與其相等的傳入值。
我們也可以匹配多個引數:
.mixin (@a)
.mixin (@a, @b)
當我們想根據表示式進行匹配,而非根據值和引數匹配時,導引就顯得非常有用。如果你對函式式程式設計非常熟悉,那麼你很可能已經使用過導引。
為了盡可能地保留css的可宣告性,less通過導引混合而非if/else語句來實現條件判斷,因為前者已在@media query特性中被定義。
以此例做為開始:
.mixin (@a) when (lightness(@a) >= 50%)
.mixin (@a) when (lightness(@a) < 50%)
.mixin (@a)
when關鍵字用以定義乙個導引序列(此例只有乙個導引)。接下來我們執行下列**:
.class1
.class2
就會得到:
.class1
.class2
導引中可用的全部比較運算有: > >= = =<
.truth (@a) when (@a)
.truth (@a) when (@a = true)
除去關鍵字true以外的值都被視示布林假:
.class
導引序列使用逗號『,』—分割,當且僅當所有條件都符合時,才會被視為匹配成功。
.mixin (@a) when (@a > 10), (@a < -10)
導引可以無引數,也可以對引數進行比較運算:
@media: mobile;
.mixin (@a) when (@media = mobile)
.mixin (@a) when (@media = desktop)
.max (@a, @b) when (@a > @b)
.max (@a, @b) when (@a < @b)
最後,如果想基於值的型別進行匹配,我們就可以使用is*函式:
.mixin (@a, @b: 0) when (isnumber(@b))
.mixin (@a, @b: black) when (iscolor(@b))
下面就是常見的檢測函式:
如果你想判斷乙個值是純數字,還是某個單位量,可以使用下列函式:
最後再補充一點,在導引序列中可以使用and關鍵字實現與條件:
.mixin (@a) when (isnumber(@a)) and (@a > 0)
使用not關鍵字實現或條件
.mixin (@b) when not (@b > 0)
大家一起學習less 6 一些有用的混合函式
預設是淺色。gradient color f5f5f5,start eee,stop fff 使用示例 wh wh 最後生成 wh預設是深色,並且後兩個引數要求是0 256的數值 bw gradient color f5f5f5,start 0,stop 255 使用示例 wh.bordered t...
大家一起學習less 3 命名空間
這其實是 巢狀規則 的公升級版。我們先看官網例子吧 less 這裡是命名空間的定義,裡面包含乙個button方法 bundle 這裡是具體呼叫,通過 yyy方式進行呼叫,本人覺得用 更可靠,起碼長得不像親子選擇器 header a 生成的 css header a header a hover上面的...
大家一起學Golang 檔案操作
對檔案操作幾乎每個程式語言都有,go後端開發中對日誌操作較多。建立 開啟檔案 建立兩種方式 func create name string file file,err error 返回檔案物件,預設許可權0666 func newfile fd uintptr,name string filefun...