CSS預(yù)處理器之Less詳細(xì)說明
發(fā)表時間:2023-09-16 來源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]CSS 預(yù)處理器為什么要有 CSS 預(yù)處理器CSS基本上是設(shè)計師的工具,不是程序員的工具。在程序員的眼里,CSS是很頭痛的事情,它并不像其它程序語言,比如說PHP、Javascript等等,有自己的變量、常量、條件語句以及一些編程語法,只是一行行單純的屬性描述,寫起來相當(dāng)?shù)馁M事,而且代碼難以組織和...
CSS 預(yù)處理器
為什么要有 CSS 預(yù)處理器
CSS基本上是設(shè)計師的工具,不是程序員的工具。在程序員的眼里,CSS是很頭痛的事情,它并不像其它程序語言,比如說PHP、Javascript等等,有自己的變量、常量、條件語句以及一些編程語法,只是一行行單純的屬性描述,寫起來相當(dāng)?shù)馁M事,而且代碼難以組織和維護(hù)。
很自然的,有人就開始在想,能不能給CSS像其他程序語言一樣,加入一些編程元素,讓CSS能像其他程序語言一樣可以做一些預(yù)定的處理。這樣一來,就有了“CSS預(yù)處器(CSS Preprocessor)”。
什么是 CSS 預(yù)處理器
是 CSS 語言的超集,比CSS更豐滿。
CSS 預(yù)處理器定義了一種新的語言,其基本思想是:用一種專門的編程語言,為CSS增加了一些編程的特性,將CSS作為目標(biāo)生成文件,然后開發(fā)者就只要使用這種語言進(jìn)行編碼工作。
通俗的說,CSS預(yù)處理器用一種專門的編程語言,進(jìn)行Web頁面樣式設(shè)計,然后再編譯成正常的CSS文件,以供項目使用。CSS預(yù)處理器為CSS增加一些編程的特性,無需考慮瀏覽器的兼容性問題,例如你可以在CSS中使用變量、簡單的邏輯程序、函數(shù)等等在編程語言中的一些基本特性,可以讓你的CSS更加簡潔、適應(yīng)性更強、可讀性更佳,更易于代碼的維護(hù)等諸多好處。
CSS預(yù)處理器技術(shù)已經(jīng)非常成熟,而且也涌現(xiàn)出了很多種不同的CSS預(yù)處理器語言,比如說:Sass(SCSS)、LESS、Stylus、Turbine、Swithch CSS、CSS Cacheer、DT CSS等。如此之多的CSS預(yù)處理器,那么“我應(yīng)該選擇哪種CSS預(yù)處理器?”也相應(yīng)成了最近網(wǎng)上的一大熱門話題,在Linkedin、Twitter、CSS-Trick、知呼以及各大技術(shù)論壇上,很多人為此爭論不休。相比過計我們對是否應(yīng)該使用CSS預(yù)處理器的話題而言,這已經(jīng)是很大的進(jìn)步了。
到目前為止,在眾多優(yōu)秀的CSS預(yù)處理器語言中就屬Sass、LESS和Stylus最優(yōu)秀,討論的也多,對比的也多。本文將分別從他們產(chǎn)生的背景、安裝、使用語法、異同等幾個對比之處向你介紹這三款CSS預(yù)處理器語言。相信前端開發(fā)工程師會做出自己的選擇——我要選擇哪款CSS預(yù)處理器。
less 的介紹,less 是一款比較流行的預(yù)處理 CSS,支持變量、混合、函數(shù)、嵌套、循環(huán)等特點。
less 的語法
注釋
less 的注釋可以有兩種。
第一種注釋:模板注釋
// 模板注釋 這里的注釋轉(zhuǎn)換成CSS后將會刪除
因為 less 要轉(zhuǎn)換為 css才能在瀏覽器中使用。轉(zhuǎn)換成 css 之后,這種注釋會被刪除(畢竟 css 不識別這種注釋)。
第二種注釋:CSS 注釋語法
/* CSS 注釋語法 轉(zhuǎn)換為CSS后讓然保留 */
總結(jié):如果在less中寫注釋,我們推薦寫第一種注釋。除非是類似于版權(quán)等內(nèi)容,就采用第二種注釋。
定義變量
我們可以把重復(fù)使用或經(jīng)常修改的值定義為變量,在需要使用的地方引用這個變量即可。這樣可以避免很多重復(fù)的工作量。
(1)在less文件中,定義一個變量的格式:
@變量名: 變量值; //格式@bgColor: #f5f5f5; //格式舉例
(2)同時,在 less 文件中引用這個變量。
最終,less文件的完整版代碼如下:
main.less:
// 定義變量@bgColor: #f5f5f5;// 引用變量body{ background-color: @bgColor;}
我們將上面的less文件編譯為 css 文件后(下一段講less文件的編譯),自動生成的代碼如下:
main.css:
body{ background-color: #f5f5f5;}
使用嵌套
在 css 中經(jīng)常會用到子代選擇器,效果可能是這樣的:
.container {
width: 1024px;}.container > .row {
height: 100%;}.container > .row a {
color: #f40;}.container > .row a:hover {
color: #f50;}
上面的代碼嵌套了很多層,寫起來很繁瑣?扇绻 less 的嵌套語法來寫這段代碼,就比較簡潔。
嵌套的舉例如下:
main.less:
.container { width: @containerWidth; > .row { height: 100%; a { color: #f40; &:hover { color: #f50; } } } div { width: 100px; .hello { background-color: #00f; } }}
將上面的less文件編譯為 css 文件后,自動生成的代碼如下:
main.css
.container { width: 1024px;}.container > .row { height: 100%;}.container > .row a { color: #f40;}.container > .row a:hover { color: #f50;}.container div { width: 100px;}.container div .hello { background-color: #00f;}
相信看了這些案例你已經(jīng)掌握了方法,更多精彩請關(guān)注php中文網(wǎng)其它相關(guān)文章!
相關(guān)閱讀:
JavaScript里最常用的20條正則表達(dá)式
vscode的常用設(shè)置
10進(jìn)制數(shù)如何轉(zhuǎn)為16進(jìn)制
JS如何實現(xiàn)自定義鼠標(biāo)右擊菜單
以上就是CSS預(yù)處理器之Less詳解的詳細(xì)內(nèi)容,更多請關(guān)注php中文網(wǎng)其它相關(guān)文章!
網(wǎng)站建設(shè)是一個廣義的術(shù)語,涵蓋了許多不同的技能和學(xué)科中所使用的生產(chǎn)和維護(hù)的網(wǎng)站。