LESS學習和使用

Mondo 科技 更新 2024-01-29

我們都知道HTML和CSS不是程式語言,而是標記語言,所以很難像JS那樣定義變數、編寫方法、實現模組化開發等。 在目前的CSS編寫模式中,我們定義了一些常用的樣式類名,哪一塊HTML需要這個樣式,並新增相應的樣式類名,所以我們經常會看到乙個標籤上有很多樣式類名,在這種模式下我們必須時刻注意CSS的優先順序,避免重疊的樣式覆蓋。

為了解決CSS的這個困境,CSS預處理和預編譯的思想脫穎而出,比較有代表性的有less、sass和stylus。 他們在傳統的CSS中增加了大量的新的語法、寫作方法、常用函式等,可以使我們的CSS成為像JS一樣的程式語言。 本文重點介紹 less 的語法和用法。

寫出的少**不能直接在瀏覽器中執行,需要編譯成普通的css**,所以先來學習習常見的少編譯方法。

Less 僅適用於現代瀏覽器(最新版本的 Chrome、Firefox、Safari 和 IE)。 我們不建議在生產中使用 LESS 客戶端,因為使用者在將 LESS 編譯為 CSS 時會看到載入延遲,即使瀏覽器中的載入延遲不到一秒。

讓我們首先介紹我們設定樣式的 less 檔案注意:rel='stylesheet/less'

然後少介紹JS 檔案。

在瀏覽器中呼叫有乙個好處:可以開啟監控模式,只要我們改動少,在一定時間內,瀏覽器就會重新編譯,我們可以看到想要的效果。方法如下:

需要注意的是,瀏覽器端是用來拉取ajax的。 較少的檔案,因此當直接在本地檔案系統上開啟時(即位址以 file: 開頭)或存在跨域時,它們不能直接拉取。 檔案較少,導致樣式無法生效。因此,一般使用less來做CSS預處理,很少採用引用less的方式,一般將less編譯成css,然後引用生成的CSS檔案。

// index.HTML 檔案 Hello World!

// styles.減少檔案@blue:5b83ad;@size:50px;header
如果直接匯入較少的檔案,則會出現錯誤,這可以通過嘗試從簡單的 Web 伺服器**(例如 lite-server)開始來解決

npm install -g lite-serverlite-server //to run
這個方法是目前專案中最常用的方式,適用於專案的生產環境,就是將我們的LESS檔案編譯成乙個CSS檔案,我們可以直接在專案中匯入CSS檔案基本步驟:安裝>編譯、壓縮編譯>或使用節點**實現批量編譯等

將 less 模組安裝到全域性節點環境中。

npm install less -g
使用命令進行編譯。

->看跌期權樣式更少的檔案編譯成樣式CSS 檔案(如果您沒有此 CSS 檔案,您將自行建立) LESSC 樣式less styles.CSS ->編譯的CSS檔案是壓縮的Lessc Stylesless styles.min.css -x 或 --compress
節點命令編譯前後的對比:

// styles.更少檔案(預編譯) @blue: 5b83ad;@size:50px;header
// styles.CSS 檔案(編譯後)標頭
當我們使用上面的 node 命令進行編譯時,我們一次只能編譯乙個檔案,這樣如果頁面中少了多個檔案,每次編譯都比較耗時,所以我們可以結合 node 的 fs 檔案讀寫操作編寫一組批量編譯的 **。

-> 定義編譯檔案目錄和目標匯出目錄 var dirpath ="./less/", tarpath = "./css/";->匯入匯入節點中需要用到的模組 var fs = require()"fs"), less = require("less");->讀取 dirpath 中的所有檔案,檢查檔案型別,只檢查我們儲存的檔案更少 var ary = files = fsreaddirsync(dirpath); files.foreach(function (file, index) ) ) ->編譯目錄下的所有檔案,並將編譯後的結果儲存在指定目錄下 aryforeach(function (file) ,function (error, output) )
目前常用的編譯工具有:考拉(據說是目前最流行的)、*編譯( )等。 我不會在本文中詳細介紹。 LESS的基本語法基本分為以下幾個方面:變數、mixins、巢狀規則、操作、函式、作用域等。

與 JS 中的變數一樣,較少的變數定義使用 @ 而不是 var

//->less **link-color: #428bca; @link-color-hover: darken(@link-color, 10%);a } ->編譯成css的結果 a a:hover
除了如上所述使用變數儲存公共屬性值外,我們還可以使用變數來儲存公共 URL、選擇器等。

//->less **#000; background: url("@/test.png"); selector: box; @bgimg: "../img"; @property: color;
基本混合:您可以輕鬆地將定義的類 A 引入到另乙個類 B 中,從而使類 B 輕鬆繼承類 A 中的所有屬性。 我們也可以使用引數進行呼叫,就像使用函式一樣。

->less **public n** ul ->編譯為 css 的結果public n** ul
上面的 **,n** ul 是將 public 中設定的 style 屬性值複製到自己的樣式中。 如果不想在編譯後的結果中以 public 的樣式輸出結果,只需要按如下方式編寫即可:

->less **public() n** ul ->編譯為 css n** ul 的結果
extend雖然在上面的例子中,n** ul 繼承了 public 的樣式,但原理是將 ** 複製過來,這樣在編譯好的 CSS 中仍然會有很多冗餘的 CSS**為了避免這種情況,我們可以使用 extend 偽類來實現樣式的繼承。 與原始選擇器共享一組樣式,但請確保原始選擇器不是括號。

->less **public n** ul ->編譯為 css 的結果public, n** ul n** ul
我們可以通過在選擇器中巢狀另乙個選擇器來實現繼承,這大大減少了數量並使其看起來更清晰。

//->less **#header .logo }
->編譯為 css header header 的結果n**igation #header .logo #header .logo:hover
運算提供加法、減法、乘法和除法運算;我們可以做屬性值和顏色的操作,這樣我們就可以實現屬性值之間的複雜關係。 如果要操作屬性值,則 less 中的函式將逐一反映** j**ascript**。

可以涉及任何數字、顏色或變數。 讓我們看一組示例:

@base: 5%;@filler: @base * 2;@other: @base + filler;color: #888 / 4;background-color: @base-color + #111;height: 100% / 2 + filler;
Less 提供一系列顏色算術函式。 顏色首先轉換為 HSL 顏色空間,然後在通道級別進行操作:

lighten(@color, 10%);// return a color which is 10% *lighter* than @colordarken(@color, 10%);// return a color which is 10% *darker* than @color
Less 提供了一組方便的數學函式,可用於處理某些數值型別的值:

round(1.67); // returns `2`ceil(2.4); // returns `3`floor(2.6); // returns `2`
less 的作用域與其他程式語言非常相似,它首先在本地查詢變數或混合模組,如果沒有,則在父作用域中查詢,直到找到它。

@var: red;#page }#footer
少習學習:少理解少編譯少學習習:少的基本語法 一種動態樣式的語言。

相關問題答案

    從“交付時發證”到“驗收時發證”,龍海取得了新的突破

    龍海完成 瀧城二期 專案聯合驗收,拉開了 驗收後發證 竣工後投產 服務模式的新序幕,全力助推企業提速,重新整理 龍海速度 近日,龍海區自然資源局會同區住房和城鄉建設局 行政服務中心管委會等相關部門完成了 福建省瀧城建築業 二期 專案竣工聯合驗收。驗收組確定專案竣工驗收後,允許專案現場投產,再出具竣工...

    海爾的即熱式電熱水器怎麼樣?感受散熱節能,美觀實用

    海爾的即開式熱電熱水器在質量方面經過了長期的市場驗證,得到了使用者的廣泛好評。其 即時加熱 功能顯著提高了沐浴的便利性,水溫可在瞬間調節到理想狀態,滿足快節奏生活的需求。超薄的外觀設計與內飾自然融合,不佔空間,更美觀。變頻加熱和功率可調技術,實現了節能與舒適體驗的有效結合。內膽採用金剛石材料,單管加...

    暖心時刻是雪地裡的“警察”

    暖心時刻是雪地裡的 警察 警察同志,我的車被困在雪地裡 來不來了,你能幫幫我嗎?湖關縣公安局東井嶺派出所接到急求助電話 月日中午,魏某驅車前往長興村,但由於路面積雪覆蓋,路面結冰,魏某在撞向右側方向盤時控制不住車身側滑,導致汽車意外掉入路邊的深雪中,車輛被困,無法前進。東井嶺派出所人民輔警接到報警後...

    ChatGPT預測這些山寨幣即將飆公升

    加密貨幣市場正在發生重大變化,最近位元幣主導地位的下降表明市場興趣正在轉向山寨幣,這可能標誌著下乙個山寨幣季節的開始。自 月 日以來,整個加密貨幣市值增長了 億美元,其中位元幣佔 億美元。市場勢頭似乎向山寨幣傾斜,總市值增加了億美元,其中只有億美元流向了位元幣。這一變化顯示了 SOL PEPE AX...

    開箱節省6700元!iPhone 14 Plus,僅售2980元!

    數字好東西獎 大家好!今天我給大家帶來乙個大好訊息!蘋果iPhone Plus,GB高階版現在僅售元!你沒聽錯,旗艦機皇原價元,現在降價了!超高價效比,絕對值得入手!接下來,讓我們仔細看看去年的旗艦機!配置亮點 強大的 A 仿生處理器 無論您是在玩遊戲 處理複雜任務還是複習日常應用程式,您都可以輕鬆...