亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專(zhuān)欄INFORMATION COLUMN

大話(huà)css預(yù)編譯處理(一)通讀介紹篇

Backache / 3704人閱讀

摘要:使用預(yù)編譯處理的優(yōu)勢(shì)使用預(yù)處理器,可以提供缺失的樣式層復(fù)用機(jī)制減少冗余代碼,提高樣式代碼的可維護(hù)性。所以我們?cè)趯?shí)際項(xiàng)目中衡量預(yù)編譯方案時(shí),還是得想想,比起帶來(lái)的額外維護(hù)開(kāi)銷(xiāo),預(yù)處理器有沒(méi)有解決更大的麻煩。

一、什么是css預(yù)編譯處理?

CSS 預(yù)編譯處理,從字面上理解,就是預(yù)先編譯處理CSS。它擴(kuò)展了 CSS 語(yǔ)言,增加了變量、Mixin、函數(shù)等編程的特性,使 CSS 更易維護(hù)和擴(kuò)展。CSS預(yù)編譯的工作原理是提供便捷的語(yǔ)法和特性供開(kāi)發(fā)者編寫(xiě)源代碼,隨后經(jīng)過(guò)專(zhuān)門(mén)的編譯工具將源碼轉(zhuǎn)化為CSS語(yǔ)法。
CSS預(yù)編譯器幾乎成為現(xiàn)如今開(kāi)發(fā)CSS的標(biāo)配,它從以下幾個(gè)方面提升了CSS開(kāi)發(fā)的效率:

增強(qiáng)編程能力;

增強(qiáng)可復(fù)用性;

增強(qiáng)可維護(hù)性;

更便于解決瀏覽器兼容性。

不同的預(yù)編譯器特性雖然有所差異,但核心功能均圍繞這些目標(biāo)打造,比如:

?    嵌套;
?    變量;
?    mixin/繼承;
?    運(yùn)算;
?    模塊化;

嵌套是所有預(yù)編譯器都支持的語(yǔ)法特性,也是原生CSS最讓開(kāi)發(fā)者頭疼的問(wèn)題之一;
mixin/繼承是為了解決hack和代碼復(fù)用;變量和運(yùn)算增強(qiáng)了源碼的可編程能力;
模塊化的支持不僅更利于代碼復(fù)用,同時(shí)也提高了源碼的可維護(hù)性。

二、為什么要使用CSS預(yù)編譯處理?

1.CSS有具體以下幾個(gè)缺點(diǎn):

1)    語(yǔ)法不夠強(qiáng)大,比如無(wú)法嵌套書(shū)寫(xiě),導(dǎo)致模塊化開(kāi)發(fā)中需要書(shū)寫(xiě)很多重復(fù)的選擇器;
2)    沒(méi)有變量和合理的樣式復(fù)用機(jī)制,使得邏輯上相關(guān)的屬性值必須以字面量的形式重復(fù)輸出,導(dǎo)致難以維護(hù)。

2.使用CSS預(yù)編譯處理的優(yōu)勢(shì):

使用CSS預(yù)處理器,可以提供 CSS 缺失的樣式層復(fù)用機(jī)制、減少冗余代碼,提高樣式代碼的可維護(hù)性。大大提高了我們的開(kāi)發(fā)效率。

3.使用CSS預(yù)編譯處理的劣勢(shì):
CSS預(yù)處理器也不是萬(wàn)金油,CSS的好處在于簡(jiǎn)便、隨時(shí)隨地被使用和調(diào)試。預(yù)編譯CSS步驟的加入,讓我們開(kāi)發(fā)工作流中多了一個(gè)環(huán)節(jié),調(diào)試也變得更麻煩了。更大的問(wèn)題在于,預(yù)編譯很容易造成后代選擇器的濫用。所以我們?cè)趯?shí)際項(xiàng)目中衡量預(yù)編譯方案時(shí),還是得想想,比起帶來(lái)的額外維護(hù)開(kāi)銷(xiāo),CSS預(yù)處理器有沒(méi)有解決更大的麻煩。

三、CSS主流預(yù)處理器:Sass、LessStylus

目前css主流預(yù)處理器是Sass、LessStylus,最早的CSS預(yù)編譯器是2007年起源于Ruby on Rails社區(qū)的SASS,目前比較流行的其他CSS預(yù)編譯器如Less、Stylus的誕生都一定程度上受到了SASS的影響和啟發(fā)。

三大框架簡(jiǎn)介
1、Sass:2007年誕生,最早也是最成熟的CSS預(yù)處理器,擁有ruby社區(qū)的支持和compass這一最強(qiáng)大的css框架,目前受LESS影響,已經(jīng)進(jìn)化到了全面兼容CSS的SCSS。
其實(shí)現(xiàn)在的Sass已經(jīng)有了兩套語(yǔ)法規(guī)則:一個(gè)依舊是用縮進(jìn)作為分隔符來(lái)區(qū)分代碼塊的;另一套規(guī)則和CSS一樣采用了大括號(hào)({})作為分隔符。后一種語(yǔ)法規(guī)則又名SCSS,在Sass3之后的版本都支持這種語(yǔ)法規(guī)則。

2、Less:2009年出現(xiàn),受SASS的影響較大,但又使用CSS的語(yǔ)法,讓大部分開(kāi)發(fā)者和設(shè)計(jì)師更容易上手,在ruby社區(qū)之外支持者遠(yuǎn)超過(guò)SASS,其缺點(diǎn)是比起SASS來(lái),可編程功能不夠,不過(guò)優(yōu)點(diǎn)是簡(jiǎn)單和兼容CSS,反過(guò)來(lái)也影響了SASS演變到了SCSS的時(shí)代,著名的Twitter Bootstrap就是采用LESS做底層語(yǔ)言的。

3、Stylus:2010年產(chǎn)生,來(lái)自Node.js社區(qū),主要用來(lái)給Node項(xiàng)目進(jìn)行CSS預(yù)處理支持,在此社區(qū)之內(nèi)有一定支持者,在廣泛的意義上人氣還完全不如SASS和LESS
Stylus被稱(chēng)為是一種革命性的新語(yǔ)言,提供一個(gè)高效、動(dòng)態(tài)、和使用表達(dá)方式來(lái)生成CSS,以供瀏覽器使用。Stylus同時(shí)支持縮進(jìn)和CSS常規(guī)樣式書(shū)寫(xiě)規(guī)則。

四、CSS預(yù)處理器的選擇

1、Sass
優(yōu)點(diǎn)

1)    用戶(hù)多,更容易找到會(huì)用scss的開(kāi)發(fā),更容易找到scss的學(xué)習(xí)資源;
2)    可編程能力比較強(qiáng),支持函數(shù),列表,對(duì)象,判斷,循環(huán)等;
3)    相比less有更多的功能;
4)    Bootstrap/Foundation等使用scss;
5)    豐富的sass庫(kù):Compass/Bourbon;

缺點(diǎn)

安裝node-sass會(huì)經(jīng)常失敗或者報(bào)錯(cuò),需要使用cnpm或者手工安裝

2、Less
優(yōu)點(diǎn):

可以在瀏覽器中運(yùn)行,實(shí)現(xiàn)主題定制功能;

缺點(diǎn):

編程能力弱,不直接支持對(duì)象,循環(huán),判斷等;
@variable 變量命名和css的@import/media/keyframes等含義容易混淆;
mixin/extend的語(yǔ)法比較奇怪;
mixin的參數(shù)如果遇到多參數(shù)和列表參數(shù)值的時(shí)候容易混淆;

3、Stylus
優(yōu)點(diǎn):

來(lái)自NodeJS社區(qū),所以和NodeJS走得很近,與JavaScript聯(lián)系非常緊密。還有專(zhuān)門(mén)JavaScript API:
http://learnboost.github.io/stylus/docs/js.html
支持Ruby之類(lèi)等等框架3.更多更強(qiáng)大的支持和功能

缺點(diǎn):

人氣不高和教程較少

總結(jié):
Sass看起來(lái)在提供的特性上占有優(yōu)勢(shì),但是LESS能夠讓開(kāi)發(fā)者平滑地從現(xiàn)存CSS文件過(guò)渡到LESS,而不需要像Sass那樣需要將CSS文件轉(zhuǎn)換成Sass格式。Stylus功能上更為強(qiáng)壯,和js聯(lián)系更加緊密。

五、CSS預(yù)處理器的學(xué)習(xí)
Sass中文文檔:http://sass.bootcss.com/
Less中文文檔:https://less.bootcss.com/
Stylus官方文檔:http://stylus-lang.com/
Stylus 中文文檔:https://www.zhangxinxu.com/jq...

如果你覺(jué)得這篇文章對(duì)你有所幫助,那就順便點(diǎn)個(gè)贊吧,點(diǎn)點(diǎn)關(guān)注不迷路~

黑芝麻哇,白芝麻發(fā),黑芝麻白芝麻哇發(fā)哈!

前端哇發(fā)哈

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/117359.html

相關(guān)文章

  • 大話(huà)css預(yù)編譯處理(二)安裝使用

    摘要:上面的命令會(huì)將編譯的傳遞給,你可以將它保存到一個(gè)文件中除了上面的命令轉(zhuǎn)譯源文件之外,現(xiàn)在還有很多第三方開(kāi)發(fā)的工具,例如是一個(gè)前端預(yù)處理器語(yǔ)言圖形編譯工具,支持,幫助開(kāi)發(fā)者更高效地使用它們進(jìn)行開(kāi)發(fā)。 一、Sass、LESS和Stylus的安裝 1.Sass的安裝 Sass是Ruby語(yǔ)言寫(xiě)的,但是兩者的語(yǔ)法沒(méi)有關(guān)系。不懂Ruby,照樣可以正常使用Sass。只是必須先安裝Ruby,然后再安裝...

    SwordFly 評(píng)論0 收藏0
  • 大話(huà)css預(yù)編譯處理(三):基礎(chǔ)語(yǔ)法

    摘要:值得慶幸的是,這三款預(yù)處理器語(yǔ)言的語(yǔ)法和語(yǔ)法都差不多。在這一節(jié)中,我們依次來(lái)對(duì)比一下這三款預(yù)處理器語(yǔ)言各種特性的異同之處,以及使用方法。預(yù)處理器語(yǔ)言支持任何變量例如顏色數(shù)值文本。 一、Sass、LESS和Stylus的語(yǔ)法 每一種語(yǔ)言都有自己一定的語(yǔ)法規(guī)則,CSS預(yù)處理器語(yǔ)言也不例外,在真正使用CSS預(yù)處器語(yǔ)言之前還有一個(gè)不可缺少的知識(shí)點(diǎn),就是對(duì)語(yǔ)法的理解。值得慶幸的是,這三款CSS預(yù)...

    劉東 評(píng)論0 收藏0
  • 正在暑假中的《課多周刊》(第1期)

    摘要:正在暑假中的課多周刊第期我們的微信公眾號(hào),更多精彩內(nèi)容皆在微信公眾號(hào),歡迎關(guān)注。若有幫助,請(qǐng)把課多周刊推薦給你的朋友,你的支持是我們最大的動(dòng)力。原理微信熱更新方案漲知識(shí)了,熱更新是以后的標(biāo)配。 正在暑假中的《課多周刊》(第1期) 我們的微信公眾號(hào):fed-talk,更多精彩內(nèi)容皆在微信公眾號(hào),歡迎關(guān)注。 若有幫助,請(qǐng)把 課多周刊 推薦給你的朋友,你的支持是我們最大的動(dòng)力。 遠(yuǎn)上寒山石徑...

    liukai90 評(píng)論0 收藏0
  • 正在暑假中的《課多周刊》(第1期)

    摘要:正在暑假中的課多周刊第期我們的微信公眾號(hào),更多精彩內(nèi)容皆在微信公眾號(hào),歡迎關(guān)注。若有幫助,請(qǐng)把課多周刊推薦給你的朋友,你的支持是我們最大的動(dòng)力。原理微信熱更新方案漲知識(shí)了,熱更新是以后的標(biāo)配。 正在暑假中的《課多周刊》(第1期) 我們的微信公眾號(hào):fed-talk,更多精彩內(nèi)容皆在微信公眾號(hào),歡迎關(guān)注。 若有幫助,請(qǐng)把 課多周刊 推薦給你的朋友,你的支持是我們最大的動(dòng)力。 遠(yuǎn)上寒山石徑...

    yintaolaowanzi 評(píng)論0 收藏0
  • 服務(wù)端預(yù)渲染之Nuxt(介紹

    摘要:為了解決問(wèn)題,推出了服務(wù)端預(yù)渲染,以便提高對(duì)優(yōu)化。應(yīng)用,到了,單頁(yè)面應(yīng)用優(yōu)秀的用戶(hù)體驗(yàn),逐漸成為了主流,頁(yè)面整體式渲染出來(lái)的,稱(chēng)之為客戶(hù)端渲染??蛻?hù)端接收數(shù)據(jù),然后完成最終渲染。通過(guò)對(duì)客戶(hù)端服務(wù)端基礎(chǔ)框架的抽象組織,主要關(guān)注的是應(yīng)用的渲染。 現(xiàn)在前端開(kāi)發(fā)一般都是前后端分離,mvvm和mvc的開(kāi)發(fā)框架,如Angular、React和Vue等,雖然寫(xiě)框架能夠使我們快速的完成開(kāi)發(fā),但是由于前...

    Shonim 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<