如何使用less?

大家好往史,我是IT修真院鄭州分院第05期學(xué)員竖哩,一枚正直純潔善良的web程序員信姓。今天給大家分享一下讶凉,修真院官網(wǎng)css任務(wù)11,如何使用less?

1.背景介紹

什么是less

我們先提一下css

CSS(層疊樣式表)是一門(mén)歷史悠久的標(biāo)記性語(yǔ)言逸月,同 HTML 一道疲扎,被廣泛應(yīng)用于萬(wàn)維網(wǎng)(World Wide Web)中絮蒿。HTML 主要負(fù)責(zé)文檔結(jié)構(gòu)的定義冲甘,CSS 負(fù)責(zé)文檔表現(xiàn)形式或樣式的定義绩卤。

作為一門(mén)標(biāo)記性語(yǔ)言,CSS 的語(yǔ)法相對(duì)簡(jiǎn)單江醇,對(duì)使用者的要求較低濒憋,但同時(shí)也帶來(lái)一些問(wèn)題:CSS 需要書(shū)寫(xiě)大量看似沒(méi)有邏輯的代碼,不方便維護(hù)及擴(kuò)展陶夜,不利于復(fù)用凛驮,尤其對(duì)于非前端開(kāi)發(fā)工程師來(lái)講,往往會(huì)因?yàn)槿鄙?CSS 編寫(xiě)經(jīng)驗(yàn)而很難寫(xiě)出組織良好且易于維護(hù)的 CSS 代碼条辟,造成這些困難的很大原因源于 CSS 是一門(mén)非程序式語(yǔ)言黔夭,沒(méi)有變量、函數(shù)捂贿、SCOPE(作用域)等概念纠修。

為了加入一些編程元素胳嘲,讓CSS能像其他程序語(yǔ)言一樣可以做一些預(yù)定的處理厂僧,CSS預(yù)處理器應(yīng)運(yùn)而生。 CSS預(yù)處理器用一種專(zhuān)門(mén)的編程語(yǔ)言了牛,進(jìn)行樣式設(shè)計(jì)颜屠,然后再編譯成正常的CSS文件,以供項(xiàng)目使用鹰祸。CSS預(yù)處理器為CSS增加一些編程的特性甫窟,使用變量、簡(jiǎn)單的邏輯程序蛙婴、函數(shù)等在編程語(yǔ)言中的一些基本特性粗井,讓CSS 更加簡(jiǎn)潔、適應(yīng)性更強(qiáng)、可讀性更佳浇衬,更易于代碼的維護(hù)懒构。

使用最為普遍的三款CSS預(yù)處理器框架分別是 SASS、LESS和Stylus耘擂。

1胆剧、SASS:最早、最成熟的CSS預(yù)處理器醉冤,擁有Ruby社區(qū)的支持和compass這一最強(qiáng)大的CSS框架秩霍,目前受LESS影響,已經(jīng)進(jìn)化到了全面兼容CSS的SCSS蚁阳。SASS使用.sass擴(kuò)展名铃绒。

2、LESS:受SASS的影響較大韵吨,但又使用CSS的語(yǔ)法匿垄,更容易上手,在Ruby社區(qū)之外支持者遠(yuǎn)超過(guò)SASS归粉,其缺點(diǎn)是比起SASS來(lái)椿疗,可編程功能不夠,優(yōu)點(diǎn)是簡(jiǎn)單和兼容CSS糠悼。LESS影響了SASS演變到SCSS届榄,著名的Twitter Bootstrap就是采用LESS做底層語(yǔ)言的。LESS使用.less擴(kuò)展名倔喂。

3铝条、Stylus:來(lái)自Node.js社區(qū),主要用來(lái)給Node項(xiàng)目進(jìn)行CSS預(yù)處理席噩,在node.js社區(qū)內(nèi)有一定支持者班缰,但在廣泛意義上人氣還完全不如SASS和LESS。Stylus使用.styl擴(kuò)展名悼枢。Stylus功能上更為強(qiáng)壯埠忘,和JavaScript聯(lián)系更加緊密。

LESS是受SASS啟發(fā)而開(kāi)發(fā)的工具馒索,為什么要開(kāi)發(fā)SASS的替代品莹妒?

原因:語(yǔ)法。SASS支持老的縮進(jìn)式的語(yǔ)法{不帶花括號(hào)的語(yǔ)法)绰上,因此程序員需要學(xué)習(xí)一種新的語(yǔ)法旨怠;LESS能與CSS無(wú)縫地緊密結(jié)合在一起,能夠讓開(kāi)發(fā)者從已有CSS文件平滑地過(guò)渡到LESS蜈块,而不需要像SASS那樣將CSS文件轉(zhuǎn)換成SASS格式鉴腻。

目前受LESS影響迷扇,已經(jīng)進(jìn)化到了全面兼容CSS的SCSS。Sass 和 SCSS 其實(shí)是同一種東西爽哎,我們平時(shí)都稱(chēng)之為 Sass谋梭,SCSS 是 Sass 3引 入新的語(yǔ)法,其語(yǔ)法完全兼容 CSS3倦青,并且繼承了 Sass 的強(qiáng)大功能瓮床。 不同點(diǎn):

(1)文件擴(kuò)展名不同,Sass 是以“.sass”后綴為擴(kuò)展名产镐,而 SCSS 是以“.scss”后綴為擴(kuò)展名.

(2)語(yǔ)法書(shū)寫(xiě)方式不同隘庄,Sass 是以嚴(yán)格的縮進(jìn)式語(yǔ)法規(guī)則來(lái)書(shū)寫(xiě),不帶大括號(hào)({})和分號(hào)(;)癣亚,而 SCSS 的語(yǔ)法書(shū)寫(xiě)和我們的 CSS 語(yǔ)法書(shū)寫(xiě)方式非常類(lèi)似(SCSS 和 CSS 寫(xiě)法無(wú)差別)丑掺。簡(jiǎn)單點(diǎn)說(shuō),把你現(xiàn)有的“.css”文件直接修改成“.scss”即可使用述雾。


2.知識(shí)剖析

2.1如何使用LESS街州?

頁(yè)面引入js代碼文件解析

我們可以直接在客戶(hù)端使用 .less(LESS 源文件),只需要從 http://lesscss.org下載 less.js 文件玻孟,然后在我們需要引入 LESS 源文件的 HTML 中加入如下代碼,也可以直接引入cdn. 首先引入less代碼

link rel="stylesheet/less" href="example.less"

script src="http://cdn.bootcss.com/less.js/2.7.0/less.js"

服務(wù)器端編譯less

安裝完node.js之后唆缴,打開(kāi)Node.js command prompt,通過(guò)npm install -d less命令安裝LESS包,然后新建一個(gè)demo.less文件,輸入lessc demo.less > test.css之后以后即可編譯CSS文件黍翎。

使用工具進(jìn)行編譯

監(jiān)測(cè)指定的less文件的變化面徽,如果檢測(cè)到變化,則自動(dòng)將less文件輸出成相應(yīng)的css文件匣掸。并且大多數(shù)工具都提供一定的debug功能趟紊。

例如使用koala對(duì)less文件進(jìn)行編譯

3.常見(jiàn)問(wèn)題

less包含了什么

4.解決方案

Less在CSS語(yǔ)法的基礎(chǔ)上進(jìn)行了擴(kuò)展,主要包含: 變量碰酝、嵌套霎匈、混合、操作符送爸、函數(shù)等等.

變量(variables)

LESS 允許開(kāi)發(fā)者自定義變量铛嘱,變量可以在全局樣式中使用,變量使得樣式修改起來(lái)更加簡(jiǎn)單碱璃。我們可以從下面的代碼了解變量的使用及作用:

less文件


經(jīng)過(guò)編譯生成的 CSS 文件如下:


從上面的代碼中我們可以看出弄痹,可以將相同的值定義成變量統(tǒng)一管理起來(lái)饭入。該特性適用于定義主題嵌器,我們可以將背景顏色、字體顏色谐丢、邊框?qū)傩缘瘸R?guī)樣式進(jìn)行統(tǒng)一定義爽航,這樣不同的主題只需要定義不同的變量文件就可以了蚓让。less 變量以@作為前綴,不能以數(shù)字開(kāi)頭讥珍, 不能包含特殊字符历极。

Less中的變量還具有計(jì)算功能,如:

less文件 css文件


在Less中的變量實(shí)際上就是一個(gè)“常量”衷佃,因?yàn)樗鼈冎荒鼙欢x一次趟卸。

less文件 @dawa:#29b078; @dawa:white; .siwa{ color: @dawa; }

css文件 .siwa { color: #ffffff; }

上面代碼很明顯說(shuō)明了后的@dawa覆蓋了前面的@dawa。

Mixins(混入)

如圖所示less文件 css文件


從上面的代碼我們可以看出: 什么是混入氏义,這個(gè)是在bootstrap中經(jīng)吵校看到的一個(gè)東西」哂疲混入可以將定義好的class A輕松的引 入到classB 邻邮,從而簡(jiǎn)單實(shí)現(xiàn)class B繼承所有class A的屬性。定義的時(shí)候前面要加點(diǎn)克婶。

而在引用之前筒严,這段代碼都不會(huì)出現(xiàn)在編譯文件中,也就是不會(huì)生成任何內(nèi)容情萤。這也是非常重要的一個(gè)特性鸭蛙。

混入(Mixin)有一個(gè)名詞叫“混入?yún)?shù)(Parametric Mixins)”


我們的默認(rèn)值是原諒綠我們可以改為自己想要的顏色比如紅色或者更綠

嵌套規(guī)則(Nested Rules)

嵌套可以增強(qiáng)代碼的層級(jí)關(guān)系,我們也可以通過(guò)嵌套來(lái)實(shí)現(xiàn)繼承筋岛,這樣很大程度減少了代碼量规惰,代碼量看起來(lái)更加清晰。


有 & 時(shí)解析的是同一個(gè)元素或此元素的偽類(lèi)泉蝌,沒(méi)有 & 解析是后代元素

函數(shù)

LESS中的函數(shù) - 映射了JavaScript函數(shù)代碼歇万,如果你愿意的話(huà),可以操縱屬性值勋陪。這一塊我還沒(méi)整明白贪磺,大家知道less里有函數(shù),可以自己找一下诅愚。


LESS 還擁有一些很有趣的特性有助于我們的開(kāi)發(fā)寒锚,例如模式匹配、條件表達(dá)式违孝、命名空間和作用域刹前,以及 JavaScript 賦值等等。

具體參考:

LESS使用參考1

LESS使用參考2

LESS使用參考3

可以了解:

值得參考的 10 個(gè) LESS CSS 實(shí)例

5.編碼實(shí)戰(zhàn)

6.擴(kuò)展思考

less和sass選哪個(gè)用雌桑?

less和sass現(xiàn)狀

7.參考文獻(xiàn)

參考一:博客園sass的學(xué)習(xí)筆記

參考二:CSS 預(yù)處理語(yǔ)言的模塊化實(shí)踐

參考三:LESS CSS 框架簡(jiǎn)介

參考四:學(xué)會(huì)如何使用LESS(一)----變量和混合

參考五:初步認(rèn)識(shí) LESS

參考六:less的配置安裝及語(yǔ)法使用

參考七:CSS——LESS

8.更多討論

1喇喉、國(guó)內(nèi)互聯(lián)網(wǎng)前端用LESS的還是SASS的多一些?

前一段看一個(gè)微博做了一個(gè)粗略的統(tǒng)計(jì)校坑,喜歡LESS的同學(xué)多于喜歡Sass的同學(xué)拣技。

(1)LESS環(huán)境較Sass簡(jiǎn)單

(2)有同學(xué)說(shuō)LESS使用較Sass簡(jiǎn)單

(3)相對(duì)而言千诬,國(guó)內(nèi)前端團(tuán)隊(duì)使用LESS的同學(xué)會(huì)略多于Sass

2、less的三種引入方式有什么優(yōu)缺點(diǎn)膏斤?

頁(yè)面引入js代碼文件解析

優(yōu)點(diǎn):不必安裝less編譯環(huán)境徐绑,同樣可以使用less文件

缺點(diǎn):在頁(yè)面上解析代碼,效率較低莫辨,受機(jī)器傲茄、網(wǎng)絡(luò)影響較大 ,影響了頁(yè)面加載速度

服務(wù)器端預(yù)編譯

優(yōu)點(diǎn):服務(wù)器端預(yù)編譯沮榜,效率高烫幕,避免客戶(hù)端解析延時(shí)。

缺點(diǎn):消耗服務(wù)器資源,編譯出錯(cuò)的話(huà)敞映,你可能要自己寫(xiě)一個(gè)處理error的函數(shù),何時(shí)編譯less文件成為一個(gè)問(wèn)題较曼,每次有客戶(hù)請(qǐng)求就編譯一次less文件顯然效率比較低,但是根據(jù)less文件的變化來(lái)編譯又好像沒(méi)有放在服務(wù)器上編譯的必要振愿。

使用工具編譯

優(yōu)點(diǎn):實(shí)時(shí)編譯捷犹,更快更方便。

缺點(diǎn):要一直打開(kāi)冕末,每天要開(kāi)始編寫(xiě)時(shí)就打開(kāi)萍歉,不能忘。

3档桃、你比較喜歡less還是sass枪孩?

你自己使用哪一種,不應(yīng)該根據(jù)國(guó)內(nèi)對(duì)哪一種使用的人多來(lái)做出發(fā)參考藻肄,而是哪種更適合自己的團(tuán)隊(duì)蔑舞。


如何使用less?_騰訊視頻


ppt鏈接

視頻鏈接

今天的分享就到這里啦,歡迎大家點(diǎn)贊嘹屯、轉(zhuǎn)發(fā)攻询、留言、拍磚~

我們下周再見(jiàn)州弟!

------------------------------------------------------------------------------------------------------------------------

技能樹(shù).IT修真院

“我們相信人人都可以成為一個(gè)工程師钧栖,現(xiàn)在開(kāi)始,找個(gè)師兄婆翔,帶你入門(mén)拯杠,掌控自己學(xué)習(xí)的節(jié)奏,學(xué)習(xí)的路上不再迷每信”潭陪。

這里是技能樹(shù).IT修真院,成千上萬(wàn)的師兄在這里找到了自己的學(xué)習(xí)路線(xiàn)纺腊,學(xué)習(xí)透明化畔咧,成長(zhǎng)可見(jiàn)化,師兄1對(duì)1免費(fèi)指導(dǎo)揖膜∈姆校快來(lái)與我一起學(xué)習(xí)吧~

我的邀請(qǐng)鏈接:http://www.jnshu.com/login/1/12164783

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市壹粟,隨后出現(xiàn)的幾起案子拜隧,更是在濱河造成了極大的恐慌,老刑警劉巖趁仙,帶你破解...
    沈念sama閱讀 216,591評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡赋续,警方通過(guò)查閱死者的電腦和手機(jī)忿磅,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,448評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)盏袄,“玉大人忿峻,你說(shuō)我怎么就攤上這事≡穑” “怎么了逛尚?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,823評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)刁愿。 經(jīng)常有香客問(wèn)我绰寞,道長(zhǎng),這世上最難降的妖魔是什么铣口? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,204評(píng)論 1 292
  • 正文 為了忘掉前任滤钱,我火速辦了婚禮,結(jié)果婚禮上脑题,老公的妹妹穿的比我還像新娘菩暗。我一直安慰自己,他們只是感情好旭蠕,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,228評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布停团。 她就那樣靜靜地躺著,像睡著了一般掏熬。 火紅的嫁衣襯著肌膚如雪佑稠。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,190評(píng)論 1 299
  • 那天旗芬,我揣著相機(jī)與錄音舌胶,去河邊找鬼。 笑死疮丛,一個(gè)胖子當(dāng)著我的面吹牛幔嫂,可吹牛的內(nèi)容都是我干的辆它。 我是一名探鬼主播,決...
    沈念sama閱讀 40,078評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼履恩,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼锰茉!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起切心,我...
    開(kāi)封第一講書(shū)人閱讀 38,923評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤飒筑,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后绽昏,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體协屡,經(jīng)...
    沈念sama閱讀 45,334評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,550評(píng)論 2 333
  • 正文 我和宋清朗相戀三年全谤,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了肤晓。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,727評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡认然,死狀恐怖材原,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情季眷,我是刑警寧澤余蟹,帶...
    沈念sama閱讀 35,428評(píng)論 5 343
  • 正文 年R本政府宣布,位于F島的核電站子刮,受9級(jí)特大地震影響威酒,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜挺峡,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,022評(píng)論 3 326
  • 文/蒙蒙 一葵孤、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧橱赠,春花似錦尤仍、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,672評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至饼拍,卻和暖如春赡模,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背师抄。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,826評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工漓柑, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,734評(píng)論 2 368
  • 正文 我出身青樓辆布,卻偏偏與公主長(zhǎng)得像瞬矩,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子锋玲,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,619評(píng)論 2 354

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

  • 1.背景介紹 CSS 是一門(mén)非程序式語(yǔ)言,沒(méi)有變量穆刻、函數(shù)置尔、SCOPE(作用域),需要書(shū)寫(xiě)大量看似沒(méi)有邏輯的代碼氢伟,不...
    遠(yuǎn)望的云閱讀 32,152評(píng)論 3 35
  • 本以為過(guò)完年朵锣,工作該告一段落谬盐!我也可以過(guò)一下期盼中的情人節(jié),享受一下節(jié)日的甜蜜诚些。然而飞傀,事與愿違! 白天诬烹。 我穿梭在...
    水墨青花_048閱讀 809評(píng)論 0 0
  • 今天小可愛(ài)回家了砸烦,沒(méi)給你發(fā)微信實(shí)在是我疏忽了,別和我一般見(jiàn)識(shí)了绞吁,以后你的航班號(hào)幢痘,車(chē)牌號(hào),班次號(hào)我都給你記著家破,晚點(diǎn)一...
    傻大個(gè)的小胖子閱讀 234評(píng)論 0 0
  • 2017年8月14日汰聋,這是一個(gè)我難以忘懷的日子脑沿,因?yàn)檫@天我來(lái)到了簡(jiǎn)書(shū)這一方世界。時(shí)至今日马僻,走過(guò)2周有余庄拇,在這短暫的...
    冷榆閱讀 547評(píng)論 23 12
  • 你有沒(méi)有遇到過(guò)這樣的情況,跟你面對(duì)的這個(gè)人臉龐很美麗,語(yǔ)言語(yǔ)氣很溫和措近,無(wú)論你問(wèn)他什么問(wèn)題溶弟,只要涉及他的責(zé)任,他會(huì)囫...
    最平凡閱讀 4,997評(píng)論 0 7