浏览器兼容CSS渐进增强 VS 优雅降级如何选择
生活随笔
收集整理的這篇文章主要介紹了
浏览器兼容CSS渐进增强 VS 优雅降级如何选择
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
由于低級瀏覽器不支持 CSS3,但是 CSS3 特效太優(yōu)秀不忍放棄,所以在高級瀏覽器中使用CSS3,而在低級瀏覽器只保證最基本的功能。二者的目的都是關(guān)注不同瀏覽器下的不同體驗,但是它們側(cè)重點不同,所以導(dǎo)致了工作流程上的不同。
百科解釋:
漸進增強(Progressive Enhancement):一開始就針對低版本瀏覽器進行構(gòu)建頁面,完成基本的功能,然后再針對高級瀏覽器進行效果、交互、追加功能達(dá)到更好的體驗。 優(yōu)雅降級(Graceful Degradation):一開始就構(gòu)建站點的完整功能,然后針對瀏覽器測試和修復(fù)。比如一開始使用 CSS3 的特性構(gòu)建了一個應(yīng)用,然后逐步針對各大瀏覽器進行 hack 使其可以在低版本瀏覽器上正常瀏覽。 其實漸進增強和優(yōu)雅降級并非什么新概念,只是舊的概念換了一個新的說法。在傳統(tǒng)軟件開發(fā)中,經(jīng)常會提到向上兼容和向下兼容的概念。漸進增強相當(dāng)于向上兼容,而優(yōu)雅降級相當(dāng)于向下兼容。向下兼容指的是高版本支持低版本的或者說后期開發(fā)的版本支持和兼容早期開發(fā)的版本,向上兼容的很少。大多數(shù)軟件都是向下兼容的,比如說Office2010能打開Office2007,Office2006,Office2005,Office2003等建的word文件,但是用Office2003就不能打開用Office2007,Office2010等建的word文件! 漸進增強和優(yōu)雅降級的區(qū)別: 優(yōu)雅降級和漸進增強只是看待同種事物的兩種觀點。優(yōu)雅降級和漸進增強都關(guān)注于同一網(wǎng)站在不同設(shè)備里不同瀏覽器下的表現(xiàn)程度。關(guān)鍵的區(qū)別則在于它們各自關(guān)注于何處,以及這種關(guān)注如何影響工作的流程。 優(yōu)雅降級觀點認(rèn)為應(yīng)該針對那些最高級、最完善的瀏覽器來設(shè)計網(wǎng)站。而將那些被認(rèn)為“過時”或有功能缺失的瀏覽器下的測試工作安排在開發(fā)周期的最后階段,并把測試對象限定為主流瀏覽器(如 IE、Mozilla 等)的前一個版本。在這種設(shè)計范例下,舊版的瀏覽器被認(rèn)為僅能提供“簡陋卻無妨 (poor, but passable)” 的瀏覽體驗。你可以做一些小的調(diào)整來適應(yīng)某個特定的瀏覽器。但由于它們并非我們所關(guān)注的焦點,因此除了修復(fù)較大的錯誤之外,其它的差異將被直接忽略。 漸進增強觀點則認(rèn)為應(yīng)關(guān)注于內(nèi)容本身。請注意其中的差別:我甚至連“瀏覽器”三個字都沒提。內(nèi)容是我們建立網(wǎng)站的誘因。有的網(wǎng)站展示它,有的則收集它,有的尋求,有的操作,還有的網(wǎng)站甚至?xí)陨系姆N種,但相同點是它們?nèi)忌婕暗絻?nèi)容。這使得漸進增強成為一種更為合理的設(shè)計范例。 通過案例分析: 看如下這兩段代碼的書寫順序,表示了我們開發(fā)的著重點。 .transition { /*漸進增強寫法*/ -webkit-transition: all .5s; -moz-transition: all .5s; -o-transition: all .5s; transition: all .5s; } .transition { /*優(yōu)雅降級寫法*/ transition: all .5s; -o-transition: all .5s; -moz-transition: all .5s; -webkit-transition: all .5s; } 前綴CSS3(-webkit-* / -moz-* / -o-*)和正常CSS3在瀏覽器中的支持情況是這樣的:如何抉擇
如果軟件開發(fā)的預(yù)算和時間充足,就不存在抉擇的問題。然而現(xiàn)實很殘酷,要么開發(fā)周期短,要么開發(fā)預(yù)算少,或者二者兼而有之,這個時候該如何抉擇?就我個人而言,講講我的觀點。 根據(jù)你的用戶所使用的客戶端的版本來做決定。請注意我的措辭,我沒有用瀏覽器,而是用客戶端。因為漸進增強和優(yōu)雅降級的概念本質(zhì)上是軟件開發(fā)過程中低版本軟件與高版本軟件面對新功能的兼容抉擇問題。服務(wù)端程序很少存在這種問題,因為開發(fā)者可以控制服務(wù)端運行程序的版本,就無所謂漸進增強和優(yōu)雅降級的問題。但是客戶端程序則不是開發(fā)者所能控制的(你總不能強制用戶去升級它們的瀏覽器吧)。我們所謂的客戶端,可以指瀏覽器,移動終端設(shè)備(如:手機,平板電腦,智能手表等)以及它們對應(yīng)的應(yīng)用程序(瀏覽器對應(yīng)的是網(wǎng)站,移動終端設(shè)備對應(yīng)的是相應(yīng)的APP)。 現(xiàn)在有很成熟的技術(shù),能夠讓你分析使用你客戶端程序的版本比例。如果低版本用戶居多,當(dāng)然優(yōu)先采用漸進增強的開發(fā)流程;如果高版本用戶居多,為了提高大多數(shù)用戶的使用體驗,那當(dāng)然優(yōu)先采用優(yōu)雅降級的開發(fā)流程。 然而事實情況是怎么樣的呢?絕大多數(shù)的大公司都是采用漸進增強的方式,因為業(yè)務(wù)優(yōu)先,提升用戶體驗永遠(yuǎn)不會排在最前面。例如:新浪微博網(wǎng)站前端的更新,擁有這種億級用戶的網(wǎng)站,絕對不可能追求某個特效而不考慮低版本用戶可不可用,一定是確保低版本到高版本的可訪問性,再去漸進增強,采用新功能給高版本用戶提供更好的用戶體驗。但也不是沒有反例。如果你開發(fā)的是一款面向青少年的軟件(或網(wǎng)站),你知道這個群體的人總是喜歡嘗試新事物,總是喜歡酷炫的特效,總是喜歡把它們的軟件更新到最新版本(而不像我們老一輩的用戶)。面對這種情況,漸進增強的開發(fā)流程實為上選。
轉(zhuǎn)載于:https://www.cnblogs.com/chaojiaheng/p/8564801.html
總結(jié)
以上是生活随笔為你收集整理的浏览器兼容CSS渐进增强 VS 优雅降级如何选择的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: UML 中extend和include的
- 下一篇: 艾尔登法环灵依墓地铃兰6怎么获得?