Less學(xué)習(xí)

為什么使用less

css已經(jīng)有很多新的東西學(xué)習(xí)了,為什么要學(xué)習(xí)less的知識。Github上很多項(xiàng)目都已經(jīng)在用,之前只是一知半解。less既然這么流行,那么肯定有css無法比擬的優(yōu)勢的。

經(jīng)過幾天的學(xué)習(xí),發(fā)現(xiàn)less除了可以定義變量、嵌套、計(jì)算等使得重構(gòu)開發(fā)效率提高以外,還可以將一些常用的屬性組合定義一個(gè)函數(shù),以便于開發(fā)時(shí)不用重復(fù)去書寫。這正好體現(xiàn)著"Less is more"的原則。在寫可復(fù)用動畫函數(shù)的時(shí)候,用less來寫css動畫庫很方便。工作中可以整理自己的一套,用的時(shí)候?qū)?shù)修改一下,就是可以快速創(chuàng)造出所需的動畫。

node中使用

  • 全局 npm install less -g

  • 項(xiàng)目文件夾 npm i less -save-dev

  • 版本查詢 less -v 檢查是否安裝成功

  • 擴(kuò)展 插件

例如,命令行中安裝 npm install less-plugin-clean-css
在代碼中使用 var pluginName = require("pluginName");的方式引入。

瀏覽器中引入方式

原生瀏覽器可以通過將以下代碼加入網(wǎng)頁的head部分,訪問出效果。

<link rel="stylesheet/less" type="text/css" href="yourfile.less"> 
<script src="https://cdn.bootcss.com/less.js/2.7.2/less.min.js"></script>

Safari瀏覽器打開本地網(wǎng)頁文件沒有問題,但是Google Chrome 引入本地資源文件需要開啟 "-allow-file-access-from-files" 命令行開關(guān)。

建議先在線試用或是本地app中編輯,這里提供一個(gè)在線編譯器 http://less2css.org/

命令行編譯

npm安裝的less可以通過命令行的方式來編譯less文件到css文件,例如運(yùn)行'lessc your.less your.css'這樣的代碼。

更多的用法,輸入 'lessc -h' 獲取更多的幫助。

通過形如'@import “another.less”'的方式引入的文件,也會在編譯的時(shí)候自動引入編譯。

less核心功能

翻看 less 的官網(wǎng) ,發(fā)現(xiàn)無從下手。其實(shí),less的強(qiáng)大之處在它的函數(shù),函數(shù)是最重要的功能,分為 Misc ,String,List,Math,Type,Color幾類,其中Color類的函數(shù)最為常用,動畫函數(shù)庫主要是用這些函數(shù)來的實(shí)現(xiàn)的。

幾個(gè)例子

csslab(原名Lesslab),從名字可以感覺出這里會有寶藏。來自芒果TV團(tuán)隊(duì)封裝的CSS動畫庫,這些例子會讓你有直觀的印象,例子放在CodePen,你可以編譯和修改,直接運(yùn)行看到效果,所見及所得。

項(xiàng)目中使用

Less 是 css 預(yù)處理器,通過npm安裝后,通過var less = require('less');的語句就可以在node中調(diào)用Less預(yù)編譯器。現(xiàn)在的前端項(xiàng)目都工程化,npm上有很多第三方的包,通過Express的中間件 Connect Middleware for Less.js 將less加入項(xiàng)目,grunt-contrib-less 定時(shí)運(yùn)行,gulp-less 減小打包后的體積。可用的選擇很多,適合項(xiàng)目的才是最好的。

webpack

前端項(xiàng)目現(xiàn)在流行的打包工具是 webpack,它的 loader 可以打包 js 以外的文件。欲知詳情,待看下一篇分解。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • less 是一種基于JavaScript的動態(tài)樣式語言。它包含了一套自定義的語法以及一個(gè)編譯器,我們可以根據(jù)語法定...
    謝小逸閱讀 864評論 0 3
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,335評論 25 708
  • 本來預(yù)計(jì)昨天就可以完成這篇的,由于工作原因,拖到了現(xiàn)在。接下來的一個(gè)月應(yīng)該會很忙,工作上有新的項(xiàng)目要開始做,盡可能...
    程愷閱讀 3,089評論 0 2
  • 生活中往往有許多的小細(xì)節(jié)被我們漸漸的忽視,但是細(xì)節(jié)決定一個(gè)人的人品,語言表達(dá)決定一個(gè)人的素養(yǎng)問題。 前幾天,我男朋...
    小趣多閱讀 398評論 0 0
  • 收到小妹不小心被摩托車攪到腳的消息時(shí),我正在學(xué)校飯?zhí)贸晕顼垼蝗婚g,找不到適當(dāng)?shù)谋砬椤?那天我本來就請了假去檢查身...
    西西yohui閱讀 248評論 6 2