漸進增強(progressive enhancement): 針對低版本瀏覽器進行構建頁面逻谦,保證最基本的功能,然后再針對高級瀏覽器進行效果肌割、交互等改進和追加功能達到更好的用戶體驗
優(yōu)雅降級(graceful degradation):一開始就構建完整的功能罚斗,然后再針對低版本瀏覽器進行兼容
二者區(qū)別:優(yōu)雅降級是從復雜的現(xiàn)狀開始,并試圖減少用戶體驗的供給复濒,而漸進增強則是從一個非常基礎的乒省,能夠起作用的版本開始巧颈,并不斷擴充,以適應未來環(huán)境的需要袖扛。降級(功能衰減)意味著往回看砸泛;而漸進增強則意味著朝前看,同時保證其根基處于安全地帶
“優(yōu)雅降級”觀點認為應該針對那些最高級蛆封、最完善的瀏覽器來設計網站唇礁。而將那些被認為“過時”或有功能缺失的瀏覽器下的測試工作安排在開發(fā)周期的最后階段,并把測試對象限定為主流瀏覽器(如 IE惨篱、Mozilla 等)的前一個版本盏筐。
在這種設計范例下,舊版的瀏覽器被認為僅能提供“簡陋卻無妨 (poor, but passable)” 的瀏覽體驗砸讳。你可以做一些小的調整來適應某個特定的瀏覽器机断。但由于它們并非我們所關注的焦點,因此除了修復較大的錯誤之外绣夺,其它的差異將被直接忽略吏奸。
“漸進增強”觀點則認為應關注于內容本身。內容是我們建立網站的誘因陶耍。有的網站展示它奋蔚,有的則收集它,有的尋求,有的操作泊碑,還有的網站甚至會包含以上的種種坤按,但相同點是它們全都涉及到內容。這使得“漸進增強”成為一種更為合理的設計范例馒过。這也是它立即被 Yahoo! 所采納并用以構建其“分級式瀏覽器支持 (Graded Browser Support)”策略的原因所在臭脓。
實例:
下面的CSS究竟是該選擇 “漸進增強” 還是 “優(yōu)雅降級”呢?
.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;
}
是不是很熟悉腹忽,這里我們可能都會下意識的選擇第一種寫法来累,因為在sublime text或WebStorm等編輯器中輸入transition
時,它們都會無例外的自動生成第一種漸進增強的格式窘奏,這也的確是比較聰明和值得推薦的寫法嘹锁。至于原因,可以看看下面的資料來源着裹。
觀點:
漸進增強一般說的是使用CSS3技術领猾,在不影響老瀏覽器的正常顯示與使用情形下來增強體驗,而優(yōu)雅降級則是體現(xiàn)html標簽的語義骇扇,以便在js/css的加載失敗/被禁用時摔竿,也不影響用戶的相應功能。
資料來源: