CSS預處理技術總結(一)Less

2021-07-15 13:48:36 字數 2098 閱讀 5850

css預處理技術已經發展的比較成熟了,通過css預處理技術可以很好的提公升css的程式設計性,提高css**的開發效率和可維護性,目前比較熱門的相關技術有sass、less css、stylus、compass等,最近也陸續在專案中用到了這些技術,所以就來個總結吧,本文為系列文章第二篇,主要討論less

相比sass而言,less要簡單易上手一些,但是程式設計性較sass而言,略有不足,所以也有人說它更適合設計師學習,但這並不妨礙它的廣泛使用,因為less本身的語法就已經很夠用了,twitter大名鼎鼎的bootstrap專案就是基於less構建而成,以下是前端專案中經常會用到的一些less語法:

less注釋一,會被編譯到css

/**/
less注釋二,不會被編譯到css,建議之後只維護less,所以可多用這種注釋

//
定義變數用 @變數名:變數值; 使用該變數值時用 @變數名

@width:

300px;

body

.div1

混合可以將乙個定義好的class a輕鬆的引入到另乙個class b中,從而簡單實現class b繼承class a中的所有屬性。還可以帶引數地呼叫。

比如定義乙個樣式類.border,直接用到另乙個樣式類.box裡,另乙個樣式類就很方便的具有了這個類的樣式,很好的實現了css**的復用;

再比如有乙個.box2,它和.box有一些屬性相同,那就直接繼承.box再做特定的修改即可:

.border 

.box

.box2

混合(mixin):可帶引數,以實現傳入變數引數來用同乙個樣式類生成各種不同的樣式:

.border2(@border_width) 

.box3

.box4

混合(mixin)引數可帶預設值(多個引數之間使用逗號隔開)

.border3(@border_width2:5px) 

.box5

一些常見的相容性寫法就可以用混合封裝起來進行簡化:

.border_radius(@border_radius:2px)
有些情況想根據傳入的引數來改變混合的預設呈現,比如:

下面通過less模式匹配,定義不同樣式模式的三角(top模式和bottom模式),但無論哪種模式,@_(放在模式引數位置)定義的樣式所有模式都公有

.********(@_,@w,@c) 

.********(top,@w,@c)

.********(bottom,@w,@c)

.********2

.********3

@box_width:

100px;

.box6

可以在乙個選擇器中直接巢狀另乙個選擇器來實現繼承,這樣很大程度減少了**量,並且**看起來結構更加清晰:

.list1 

height

: 20px;

a &:hover

}}}

@arguments包含了所有傳遞進來的引數. 如果你不想單獨處理每乙個引數的話就可以像這樣寫:

.box-shadow (@x: 0, @y: 0, @blur: 1px, @color: #000) 

.box-shadow(2px, 5px);

有時候需要輸出一些不正確的css語法或者使用一些 less不認識的專有語法.

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

.class1
1 完整的less中文文件:

作者 @浩時代

2016.07.25

Css預處理器 Less 知識總結

less是一種動態樣式語言,屬於css預處理器的範疇,它擴充套件了 css 語言,增加了變數 mixin 混合 函式等特性,使 css 更易維護和擴充套件 less 既可以在 客戶端 上執行 引入less指令碼檔案 也可以借助node.js在服務端執行。less的中文官網 bootstrap中les...

css預處理器 less

less是一種動態樣式語言,屬於css預處理語言的一種,它使用類似css的語法,為css的賦予了動態語言的特性,如變數 繼承 運算 函式等,更方便css的編寫和維護。我們編寫的less檔案最終會編譯成css檔案 我們編寫的less檔案最終會被編譯成css檔案去執行,那麼在less中注釋分兩種,一種是...

css預處理器 less

官網 中文網 定義變數以 開頭 width 10px height width 10px 定義的變數 height 為20px top 就像定義了乙個方法,然後可以在多個地方呼叫一樣。bordered top header logo 加減乘除 單位一最左側運算元的單位為準。如果單位換算無效或失去意義...