蘭州網(wǎng)站制作公司百度一下首頁下載安裝桌面
文章目錄
- 前言
- 一、漸進(jìn)增強
- 二、優(yōu)雅降級
- 三、兩者區(qū)別
- 四、漸進(jìn)增強和優(yōu)雅降級如何抉擇
前言
漸進(jìn)增強和優(yōu)雅降級是在css3出現(xiàn)之后才火起來的。比如IE6等,不支持css3,但是css3的樣式又特別優(yōu)秀,所以在高級瀏覽器中應(yīng)用css3樣式,在低版本中保持基本功能。
漸進(jìn)增強和優(yōu)雅降級也是一種程序開發(fā)思想,比如在vue源碼中,數(shù)據(jù)更新和渲染就有運用優(yōu)雅降級這一思想。
一、漸進(jìn)增強
主要是針對低版本瀏覽器進(jìn)行頁面重構(gòu),保證功能的情況下,再針對高級瀏覽器進(jìn)行效果、交互等方面的改進(jìn)和追加功能。以達(dá)到更好的用戶體驗。
1、對于HTML而言,這意味著瀏覽器在遇到未知元素或?qū)傩詴r并不會報錯,而且也不會對頁面產(chǎn)生影響。比如電子郵件表單標(biāo)記:
<input type='text' id='field-email' name = 'field-email'>
需要使用新input元素,應(yīng)該把type改成這樣:
<input type='email' id='field-email' name = 'field-email'>
尚未實現(xiàn)email類型的瀏覽器會回退到默認(rèn)的text類型。實現(xiàn)了email類型的就會對email進(jìn)行校驗等。這樣我們既漸進(jìn)增強了這個頁面,也不會對舊版本瀏覽器產(chǎn)生不好的影響。
2、css中漸進(jìn)增強同樣也反映在瀏覽器如何對待新屬性上。例如:
.overlay {background-color: #000;background-color: rgba(0,0,0,0.8);
}
不支持rgba的瀏覽器,相應(yīng)元素背景色是黑色;支持rgba的則會覆蓋第一行的樣式,展示rgba中配置的透明色。
3、瀏覽器廠商也基于相同原理為自家瀏覽器引入實驗性特性。
.transition { /*漸進(jìn)增強寫法*/-webkit-transition: all .5s;-moz-transition: all .5s;-o-transition: all .5s;transition: all .5s;
}
非自家瀏覽器前綴則會忽略該特性。
4、條件規(guī)則和檢測腳本。
如果希望根據(jù)瀏覽器是否支持某個css特性來提供完全不同的樣式,那么可以選擇@supports
塊。這個特殊代碼塊稱為條件規(guī)則,它會檢測括號中的聲明,并且只在瀏覽器支持該聲明的情況下,才會應(yīng)用塊中的規(guī)則。
@supports(display: grid) {/* 在支持網(wǎng)格布局的瀏覽器中要應(yīng)用的規(guī)則 */
}
二、優(yōu)雅降級
一開始就構(gòu)建完整的功能,再針對低版本的瀏覽器進(jìn)行兼容。
.transition { /*優(yōu)雅降級寫法*/border-radius:30px 10px;-moz-border-radius:30px 10px; -webkit-border-radius:30px 10px;
}
比起漸進(jìn)增強,這個寫法理論上是一樣的。但是如果瀏覽器同時支持前綴寫法和正常寫法,后面的舊版瀏覽器就股改了新版樣式,可能會出現(xiàn)奇怪問題代碼演示。
參考鏈接:漸進(jìn)增強和優(yōu)雅降級之間有什么不同?
為了避免不必要的問題,建議使用漸進(jìn)增強。
三、兩者區(qū)別
-
優(yōu)雅降級是從復(fù)雜現(xiàn)狀開始的,并視圖減少用戶體驗的共給;而漸進(jìn)增強是從一個非?;A(chǔ)的,能用起作用的版本開始的,并在此基礎(chǔ)上不斷擴充,以適應(yīng)未來環(huán)境的需要。
-
降級(功能衰竭)意味著往回看,而漸進(jìn)增強意味著往前看,同時保證其根基處于安全地帶。
優(yōu)雅降級觀點認(rèn)為應(yīng)該針對那些最高級、最完善的瀏覽器來設(shè)計網(wǎng)站。而將那些被認(rèn)為“過時”或有功能缺失的瀏覽器下的測試工作安排在開發(fā)周期的最后切斷,并把測試對象限定為主流瀏覽器(如IE、Mozilla等)的前一個版本。在這種設(shè)計范例下,舊版的瀏覽器被認(rèn)為僅能提供“簡陋卻無妨”的瀏覽體驗??梢宰鲆恍┬〉谜{(diào)整來適應(yīng)某個特定的瀏覽器。。但由于它們并非我們所關(guān)注的焦點,因此除了修復(fù)較大的錯誤之外,其它的差異將被直接忽略。
“漸進(jìn)增強”觀點則認(rèn)為應(yīng)關(guān)注于內(nèi)容本身。內(nèi)容是建立網(wǎng)站的誘因,有的網(wǎng)站展示它,有的則收集它,有的尋求,有的操作,還有的網(wǎng)站甚至?xí)陨系姆N種,但相同點是它們?nèi)忌婕暗絻?nèi)容。這使得“漸進(jìn)增強”成為一種更為合理的設(shè)計范例。這也是它立即被 Yahoo 所采納并用以構(gòu)建其“分級式瀏覽器支持 (Graded Browser Support)”策略的原因所在。
四、漸進(jìn)增強和優(yōu)雅降級如何抉擇
一般選漸進(jìn)增強。
如果受眾年齡覆蓋面廣,客戶端從移動、平板到電腦,比如淘寶,選漸進(jìn)增強。
如果單一,比如一個移動端頁面,漸進(jìn)增強也沒有太大意義。