摘要:而漸進(jìn)增強(qiáng)和優(yōu)雅降級(jí)兩種不同的開(kāi)發(fā)流程,也是在我們項(xiàng)目初期做調(diào)研選型時(shí)會(huì)考慮的一個(gè)點(diǎn)。二者區(qū)別漸進(jìn)增強(qiáng)和優(yōu)雅降級(jí)只是看待同種事物的兩種觀點(diǎn)。漸進(jìn)增強(qiáng)和優(yōu)雅降級(jí)都關(guān)注于同一網(wǎng)站在不同設(shè)備里不同瀏覽器下的表現(xiàn)程度。
作為一名前端開(kāi)發(fā)人員,最頭疼的莫過(guò)于瀏覽器兼容。遠(yuǎn)古時(shí)期萬(wàn)惡的IE6,到現(xiàn)在CSS3不兼容的IE7/8.為了保證不同版本瀏覽器都有共同或更優(yōu)化的用戶體驗(yàn),前端搬磚的我們不得不與瀏覽器兼容頑強(qiáng)斗爭(zhēng)。而漸進(jìn)增強(qiáng)和優(yōu)雅降級(jí)兩種不同的開(kāi)發(fā)流程,也是在我們項(xiàng)目初期做調(diào)研選型時(shí)會(huì)考慮的一個(gè)點(diǎn)。
漸進(jìn)增強(qiáng)(Progressive Enhancement)一開(kāi)始就針對(duì)低版本瀏覽器進(jìn)行構(gòu)建頁(yè)面,完成基本的功能,然后再針對(duì)高級(jí)瀏覽器進(jìn)行效果、交互、追加功能達(dá)到更好的體驗(yàn)。
優(yōu)雅降級(jí)(graceful degradation)一開(kāi)始就構(gòu)建站點(diǎn)的完整功能,然后針對(duì)瀏覽器測(cè)試和修復(fù)。比如一開(kāi)始使用 CSS3 的特性構(gòu)建了一個(gè)應(yīng)用,然后逐步針對(duì)各大瀏覽器進(jìn)行 hack 使其可以在低版本瀏覽器上正常瀏覽。
初一看這兩個(gè)概念有點(diǎn)高大上,其實(shí)作為開(kāi)發(fā)人員來(lái)說(shuō),多多少少已經(jīng)在項(xiàng)目中運(yùn)用只是你自己不察覺(jué)而已。換個(gè)詞匯就比較好理解了,漸進(jìn)增強(qiáng)(向上/前兼容),優(yōu)雅降級(jí)(向下兼容),向上兼容高版本瀏覽器,向下兼容低版本瀏覽器。
二者區(qū)別漸進(jìn)增強(qiáng)和優(yōu)雅降級(jí)只是看待同種事物的兩種觀點(diǎn)。漸進(jìn)增強(qiáng)和優(yōu)雅降級(jí)都關(guān)注于同一網(wǎng)站在不同設(shè)備里不同瀏覽器下的表現(xiàn)程度。關(guān)鍵的區(qū)別則在于它們各自關(guān)注的著重點(diǎn)不同,以及這種不同的關(guān)注點(diǎn)如何影響項(xiàng)目開(kāi)發(fā)的流程。
優(yōu)雅降級(jí)觀點(diǎn)認(rèn)為應(yīng)該針對(duì)那些最高級(jí)、最完善的瀏覽器來(lái)設(shè)計(jì)網(wǎng)站。而將那些被認(rèn)為“過(guò)時(shí)”或有功能缺失的瀏覽器下的測(cè)試工作安排在開(kāi)發(fā)周期的最后階段,并把測(cè)試對(duì)象限定為主流瀏覽器(如 Chrome,Safari,IE、FireFox等)的前一個(gè)版本。在這種設(shè)計(jì)范例下,舊版的瀏覽器被認(rèn)為僅能提供“簡(jiǎn)陋卻無(wú)妨 (poor, but passable)” 的瀏覽體驗(yàn)。你可以做一些小的調(diào)整來(lái)適應(yīng)某個(gè)特定的瀏覽器。但由于它們并非我們所關(guān)注的焦點(diǎn),因此除了修復(fù)較大的錯(cuò)誤之外,其它的差異將被直接忽略。
漸進(jìn)增強(qiáng)觀點(diǎn)則認(rèn)為應(yīng)關(guān)注于內(nèi)容本身。請(qǐng)注意其中的差別:我甚至連“瀏覽器”三個(gè)字都沒(méi)提。內(nèi)容是我們建立網(wǎng)站的誘因。有的網(wǎng)站展示它,有的則收集它,有的尋求,有的操作,還有的網(wǎng)站甚至?xí)陨系姆N種,但相同點(diǎn)是它們?nèi)忌婕暗絻?nèi)容。這使得漸進(jìn)增強(qiáng)成為一種更為合理的設(shè)計(jì)范例。這也是它立即被 Yahoo! 所采納并用以構(gòu)建其“分級(jí)式瀏覽器支持 (Graded Browser Support)”策略的原因所在。
概括:優(yōu)雅降級(jí)是從復(fù)雜的現(xiàn)狀開(kāi)始,并試圖減少用戶體驗(yàn)的供給,而漸進(jìn)增強(qiáng)則是從一個(gè)非常基礎(chǔ)的,能夠起作用的版本開(kāi)始,并不斷擴(kuò)充,以適應(yīng)未來(lái)環(huán)境的需要。降級(jí)(功能衰減)意味著往回看;而漸進(jìn)增強(qiáng)則意味著朝前看,同時(shí)保證其根基處于安全地帶
代碼案例.transition { /*漸進(jìn)增強(qiáng)寫(xiě)法*/ -webkit-transition: all .5s; -moz-transition: all .5s; -o-transition: all .5s; transition: all .5s; } .transition { /*優(yōu)雅降級(jí)寫(xiě)法*/ transition: all .5s; -o-transition: all .5s; -moz-transition: all .5s; -webkit-transition: all .5s; } // -webkit- / -moz- / -o- (瀏覽器前綴)
很久以前:瀏覽器前綴CSS3和正常CSS3都不支持;
不久之前:瀏覽器只支持前綴CSS3,不支持正常CSS3;
現(xiàn)在:瀏覽器既支持前綴CSS3,又支持正常CSS3;
未來(lái):瀏覽器不支持前綴CSS3,僅支持正常CSS3.
漸進(jìn)增強(qiáng)的寫(xiě)法,優(yōu)先考慮老版本瀏覽器的可用性,最后才考慮新版本的可用性。在時(shí)期3中前綴CSS3和正常CSS3都可用的情況下,正常CSS3會(huì)覆蓋前綴CSS3。優(yōu)雅降級(jí)的寫(xiě)法,優(yōu)先考慮新版本瀏覽器的可用性,最后才考慮老版本的可用性。在時(shí)期3中前綴CSS3和正常CSS3都可用的情況下,前綴CSS3會(huì)覆蓋正常的CSS3。
現(xiàn)實(shí)項(xiàng)目開(kāi)發(fā)中,推薦使用漸進(jìn)增強(qiáng)的寫(xiě)法(postcss的autofixer也是這種寫(xiě)法),因?yàn)榍熬YCSS3的某些屬性在瀏覽器中的實(shí)現(xiàn)效果有可能與正常的CSS3實(shí)現(xiàn)效果不太一樣,所以最終還是得以正常CSS3為準(zhǔn)。
可參考張?chǎng)涡翊笊竦奈恼隆缎杈鐲SS3屬性的書(shū)寫(xiě)順序。
如何選擇低版本瀏覽器用戶占比居多,優(yōu)先采用漸進(jìn)增強(qiáng)的開(kāi)發(fā)流程;
高版本瀏覽器用戶占比居多,優(yōu)先采用優(yōu)雅降級(jí)的開(kāi)發(fā)流程;
事實(shí)上絕大多數(shù)的大公司都是采用漸進(jìn)增強(qiáng)的方式,因?yàn)闃I(yè)務(wù)優(yōu)先,提升用戶體驗(yàn)永遠(yuǎn)不會(huì)排在最前面。例如,淘寶,京東,新浪微博等網(wǎng)站前端的更新,不可能追求某個(gè)特效而不考慮低版本用戶可不可用,一定是確保低版本到高版本的可訪問(wèn)性,再去漸進(jìn)增強(qiáng),采用新功能給高版本用戶提供更好的用戶體驗(yàn)。當(dāng)然也有一些反例如阿里云,本身就是面向軟件開(kāi)發(fā)者,這個(gè)群體的人總是喜歡嘗試新事物,總是喜歡酷炫的特效,總是喜歡把它們的軟件更新到最新版本,而且大多用的是谷歌瀏覽器,即使用IE瀏覽器,也是高版本IE瀏覽器,面對(duì)這種情況,優(yōu)雅降級(jí)的開(kāi)發(fā)流程才是更好的選擇。
參考文章漸進(jìn)增強(qiáng)、優(yōu)雅降級(jí)
漸進(jìn)增強(qiáng) VS 優(yōu)雅降級(jí)
漸進(jìn)增強(qiáng)和優(yōu)雅降級(jí)之間的有什么不同?
需警惕CSS3屬性的書(shū)寫(xiě)順序
優(yōu)雅降級(jí)和漸進(jìn)增強(qiáng)的區(qū)別
作者:以樂(lè)之名
本文原創(chuàng),有不當(dāng)?shù)牡胤綒g迎指出。轉(zhuǎn)載請(qǐng)指明出處。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/113593.html
摘要:而漸進(jìn)增強(qiáng)和優(yōu)雅降級(jí)兩種不同的開(kāi)發(fā)流程,也是在我們項(xiàng)目初期做調(diào)研選型時(shí)會(huì)考慮的一個(gè)點(diǎn)。二者區(qū)別漸進(jìn)增強(qiáng)和優(yōu)雅降級(jí)只是看待同種事物的兩種觀點(diǎn)。漸進(jìn)增強(qiáng)和優(yōu)雅降級(jí)都關(guān)注于同一網(wǎng)站在不同設(shè)備里不同瀏覽器下的表現(xiàn)程度。 作為一名前端開(kāi)發(fā)人員,最頭疼的莫過(guò)于瀏覽器兼容。遠(yuǎn)古時(shí)期萬(wàn)惡的IE6,到現(xiàn)在CSS3不兼容的IE7/8.為了保證不同版本瀏覽器都有共同或更優(yōu)化的用戶體驗(yàn),前端搬磚的我們不得不與...
摘要:而漸進(jìn)增強(qiáng)和優(yōu)雅降級(jí)兩種不同的開(kāi)發(fā)流程,也是在我們項(xiàng)目初期做調(diào)研選型時(shí)會(huì)考慮的一個(gè)點(diǎn)。二者區(qū)別漸進(jìn)增強(qiáng)和優(yōu)雅降級(jí)只是看待同種事物的兩種觀點(diǎn)。漸進(jìn)增強(qiáng)和優(yōu)雅降級(jí)都關(guān)注于同一網(wǎng)站在不同設(shè)備里不同瀏覽器下的表現(xiàn)程度。 作為一名前端開(kāi)發(fā)人員,最頭疼的莫過(guò)于瀏覽器兼容。遠(yuǎn)古時(shí)期萬(wàn)惡的IE6,到現(xiàn)在CSS3不兼容的IE7/8.為了保證不同版本瀏覽器都有共同或更優(yōu)化的用戶體驗(yàn),前端搬磚的我們不得不與...
摘要:一背景介紹漸進(jìn)增強(qiáng)和優(yōu)雅降級(jí)這兩個(gè)概念是在出現(xiàn)之后火起來(lái)的。二概念理解漸進(jìn)增強(qiáng)漸進(jìn)增強(qiáng)一開(kāi)始就針對(duì)低版本瀏覽器進(jìn)行構(gòu)建頁(yè)面,完成基本的功能,然后再針對(duì)高級(jí)瀏覽器進(jìn)行效果交互追加功能達(dá)到更好的體驗(yàn)。 一、背景介紹 漸進(jìn)增強(qiáng)和優(yōu)雅降級(jí)這兩個(gè)概念是在 CSS3 出現(xiàn)之后火起來(lái)的。由于低級(jí)瀏覽器不支持 CSS3,但是 CSS3 特效太優(yōu)秀不忍放棄,所以在高級(jí)瀏覽器中使用CSS3,而在低級(jí)瀏覽器...
摘要:代碼展示漸進(jìn)增強(qiáng)優(yōu)雅降級(jí)帶前綴的個(gè)滿足了大部分瀏覽器,而不帶前綴的只有最新的一部分瀏覽器才支持。如何選擇漸進(jìn)增強(qiáng)觀點(diǎn)認(rèn)為應(yīng)關(guān)注于內(nèi)容本身。優(yōu)雅降級(jí)觀點(diǎn)則認(rèn)為應(yīng)該針對(duì)那些最高級(jí)最完善的瀏覽器來(lái)設(shè)計(jì)網(wǎng)站。 1.代碼展示 /*漸進(jìn)增強(qiáng)*/ .div1 { -webkit-transition: all 2s; //Safari Chrome ...
閱讀 2964·2021-11-17 09:33
閱讀 3125·2021-11-16 11:52
閱讀 488·2021-09-26 09:55
閱讀 2983·2019-08-30 15:52
閱讀 1321·2019-08-30 15:44
閱讀 1268·2019-08-30 13:59
閱讀 805·2019-08-30 13:08
閱讀 1167·2019-08-30 10:50