首頁 web前端 html教學 CSS預處理器之Less詳解

CSS預處理器之Less詳解

Feb 28, 2018 am 10:13 AM
less sass

CSS 預處理器

為什麼要有 CSS 預處理器

CSS基本上是設計師的工具,不是程式設計師的工具。在程式設計師的眼裡,CSS是很頭痛的事情,它並不像其它程式語言,比如說PHP、Javascript等等,有自己的變數、常數、條件語句以及一些程式設計語法,只是一行行單純的屬性描述,寫起來相當的費事,而且程式碼難以組織和維護。

很自然的,有人就開始在想,能不能給CSS像其他程式語言一樣,加入一些程式設計元素,讓CSS能像其他程式語言一樣可以做一些預定的處理。這樣一來,就有了「CSS預處器(CSS Preprocessor)」。

什麼是 CSS 預處理器

是 CSS 語言的超集,比CSS更豐滿。

CSS 預處理器定義了一種新的語言,其基本思想是:用一種專門的程式語言,為CSS增加了一些程式設計的特性,將CSS作為目標生成文件,然後開發者就只要使用這種語言進行編碼工作。

通俗的說,CSS預處理器用一種專門的程式語言,進行Web頁面樣式設計,然後再編譯成正常的CSS文件,以供專案使用。 CSS預處理器為CSS增加一些程式設計的特性,無需考慮瀏覽器的兼容性問題,例如你可以在CSS中使用變數、簡單的邏輯程式、函數等等在程式語言中的一些基本特性,可以讓你的CSS更加簡潔、適應性更強、可讀性更佳,更易於程式碼的維護等諸多好處。

CSS預處理器技術已經非常成熟,而且也湧現了很多種不同的CSS預處理器語言,比如說:Sass(SCSS)、LESS、Stylus、Turbine、Swithch CSS、CSS Cacheer、 DT CSS等。如此之多的CSS預處理器,那麼「我該選擇哪種CSS預處理器?」也相應成了最近網路上的一大熱門話題,在Linkedin、Twitter、CSS-Trick、知呼以及各大技術論壇上,很多人為此爭論不休。相較於過計我們對是否應該使用CSS預處理器的話題而言,這已經是很大的進步了。

到目前為止,在眾多優秀的CSS預處理器語言中就屬Sass、LESS和Stylus最優秀,討論的也多,對比的也多。本文將分別從他們產生的背景、安裝、使用語法、異同等幾個對比之處向你介紹這三款CSS預處理器語言。相信前端開發工程師會做出自己的選擇-我要選擇哪一款CSS預處理器。

less 的介紹,less 是比較流行的預處理 CSS,支援變數、混合、函數、巢狀、迴圈等特點。

less 的語法

註解

less 的註解可以有兩種。

第一種註解:範本註解

 // 範本註解這裡的註解轉換成CSS後將會刪除

因為less 要轉換成css才能在瀏覽器中使用。轉換成 css 之後,這種註解會被刪除(畢竟 css 不辨識這種註解)。

第二種註解:CSS 註解語法

/* CSS 註解語法轉換為CSS後讓然保留*/

總結:如果在less中寫註釋,我們推薦寫第一種註釋。除非是類似版權等內容,就採用第二種註解。

定義變數

我們可以把重複使用或經常修改的值定義為變量,在需要使用的地方引用這個變數即可。這樣可以避免很多重複的工作量。

(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 中經常會用到子代選擇器,效果可能是這樣的:

.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;}
登入後複製

相信看了這些案例你已經掌握了方法,更多精彩請關注php中文網其它相關文章!

相關閱讀:

JavaScript裡最常用的20個正規表示式

#vscode的常用設定

## 10進制數如何轉為16進位

JS如何實作自訂滑鼠右鍵選單

###JS如何實作自訂滑鼠右鍵選單########

以上是CSS預處理器之Less詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
威爾R.E.P.O.有交叉遊戲嗎?
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

> gt;的目的是什麼 元素? > gt;的目的是什麼 元素? Mar 21, 2025 pm 12:34 PM

本文討論了HTML< Progress>元素,其目的,樣式和與< meter>元素。主要重點是使用< progress>為了完成任務和LT;儀表>對於stati

< datalist>的目的是什麼。 元素? < datalist>的目的是什麼。 元素? Mar 21, 2025 pm 12:33 PM

本文討論了html< datalist>元素,通過提供自動完整建議,改善用戶體驗並減少錯誤來增強表格。Character計數:159

< meter>的目的是什麼。 元素? < meter>的目的是什麼。 元素? Mar 21, 2025 pm 12:35 PM

本文討論了HTML< meter>元素,用於在一個範圍內顯示標量或分數值及其在Web開發中的常見應用。它區分了< meter>從< progress>和前

視口元標籤是什麼?為什麼對響應式設計很重要? 視口元標籤是什麼?為什麼對響應式設計很重要? Mar 20, 2025 pm 05:56 PM

本文討論了視口元標籤,這對於移動設備上的響應式Web設計至關重要。它解釋瞭如何正確使用確保最佳的內容縮放和用戶交互,而濫用可能會導致設計和可訪問性問題。

HTML容易為初學者學習嗎? HTML容易為初學者學習嗎? Apr 07, 2025 am 12:11 AM

HTML適合初學者學習,因為它簡單易學且能快速看到成果。 1)HTML的學習曲線平緩,易於上手。 2)只需掌握基本標籤即可開始創建網頁。 3)靈活性高,可與CSS和JavaScript結合使用。 4)豐富的學習資源和現代工具支持學習過程。

< iframe>的目的是什麼。 標籤?使用時的安全考慮是什麼? < iframe>的目的是什麼。 標籤?使用時的安全考慮是什麼? Mar 20, 2025 pm 06:05 PM

本文討論了< iframe>將外部內容嵌入網頁,其常見用途,安全風險以及諸如對象標籤和API等替代方案的目的。

HTML,CSS和JavaScript的角色:核心職責 HTML,CSS和JavaScript的角色:核心職責 Apr 08, 2025 pm 07:05 PM

HTML定義網頁結構,CSS負責樣式和佈局,JavaScript賦予動態交互。三者在網頁開發中各司其職,共同構建豐富多彩的網站。

HTML中起始標籤的示例是什麼? HTML中起始標籤的示例是什麼? Apr 06, 2025 am 12:04 AM

AnexampleOfAstartingTaginHtmlis,beginSaparagraph.startingTagSareEssentialInhtmlastheyInitiateEllements,defiteTheeTheErtypes,andarecrucialforsstructuringwebpages wepages webpages andConstructingthedom。

See all articles