css3中的漸進增強與優雅降級
漸進增強和優雅降級這兩個概念是在 CSS3 出現之後火起來的。由於低階瀏覽器不支援 CSS3,但 CSS3 特效太優秀不忍放棄,所以在進階瀏覽器中使用CSS3,而在低階瀏覽器
只保證最基本的功能。二者的目的都是專注於不同瀏覽器下的不同體驗,但是它們重點不同,所以導致了工作流程上的不同。
漸進增強(Progressive Enhancement):一開始就針對低版本瀏覽器進行建立頁面,完成基本的功能,然後再針對進階瀏覽器進行效果、互動、追加功能達到更好的體驗。
優雅降級(Graceful Degradation):一開始就建立網站的完整功能,然後針對瀏覽器測試和修復。例如一開始使用 CSS3 的功能建立了一個應用,然後逐步針對各大瀏覽器進行 hack 使其可以在低版本瀏覽器上正常瀏覽。
在傳統軟體開發中,常會提到向上相容和向下相容的概念。漸進增強相當於向上相容,而優雅降級相當於向下相容。向下相容指的是高版本支援低版本的或說後期開發的版本支援和相容早期開發的版本,向上相容的很少。大多數軟體都是向下相容的,比如說Office2010能打開Office2007,Office2006,Office2005,Office2003等建的word文件,但是用Office2003就不能打開用Office2007,Office2010等建的word檔!
兩者的差異:
優雅降級和漸進增強只是看待同種事物的兩種觀點。優雅降級和漸進增強都著重於同一網站在不同裝置裡不同瀏覽器下的表現程度。關鍵的差異則在於它們各自關注於何處,以及這種關注如何影響工作的流程。
優雅降級觀點認為應該針對那些最高級、最完善的瀏覽器來設計網站。而將那些被認為「過時」或有功能缺失的瀏覽器下的測試工作安排在開發週期的最後階段,並將測試對象限定為主流瀏覽器(如 IE、Mozilla 等)的前一個版本。在這種設計範例下,舊版的瀏覽器被認為僅能提供「簡陋卻無妨 (poor, but passable)」 的瀏覽體驗。你可以做一些小的調整來適應某個特定的瀏覽器。但由於它們並非我們所關注的焦點,因此除了修復較大的錯誤之外,其它的差異將被直接忽略。
漸進增強觀點則認為應著重於內容本身。請注意其中的差異:我甚至連「瀏覽器」三個字都沒提。內容是我們建立網站的誘因。有的網站展示它,有的則收集它,有的尋求,有的操作,還有的網站甚至會包含以上的種種,但相同點是它們全都涉及到內容。這使得漸進增強成為更合理的設計範例。這也是為什麼它立即被 Yahoo! 所採納並用以建構其「分級式瀏覽器支援 (Graded Browser Support)」策略的原因所在。
案例分析:
(1)代碼
.transition { /*渐进增强写法*/ -webkit-transition: all .5s; -moz-transition: all .5s; -o-transition: all .5s; transition: all .5s; } .transition { /*优雅降级写法*/ transition: all .5s; -o-transition: all .5s; -moz-transition: all .5s; -webkit-transition: all .5s; }
(2)前綴CSS3(-webkit- / -moz - / -o-*)和正常CSS3在瀏覽器中的支援情況是這樣的:
很久以前:瀏覽器前綴CSS3和正常CSS3都不支援;
不久之前:瀏覽器只支援前綴CSS3,不支援正常CSS3;
#現在:瀏覽器既支援前綴CSS3,又支援正常CSS3;
#未來:瀏覽器不支援前綴CSS3,僅支援正常CSS3.
(3)漸進增強的寫法,優先考慮舊版瀏覽器的可用性,最後才考慮新版本的可用性。在時期3前綴CSS3和正常CSS3都可用的情況下,正常CSS3會覆蓋前綴CSS3。優雅降級的寫法,優先考慮新版本瀏覽器的可用性,最後才考慮舊版的可用性。在時期3前綴CSS3和正常CSS3都可用的情況下,前綴CSS3會覆蓋正常的CSS3。
就CSS3這種例子而言,我更推崇漸進增強的寫法。因為前綴CSS3的某些屬性在瀏覽器中的實作效果有可能與正常的CSS3實作效果不太一樣,所以最後還是得以正常CSS3為準。如果你好奇究竟是什麼屬性在前綴CSS3和正常CSS3中顯式效果不一樣。
(4)如何抉擇
根據你的使用者所使用的客戶端的版本來做決定。請注意我的措辭,我沒有用瀏覽器,而是用客戶端。因為漸進增強和優雅降級的概念本質上是軟體開發過程中低版本軟體與高版本軟體面對新功能的兼容抉擇問題。服務端程式很少有這種問題,因為開發者可以控制服務端運行程式的版本,就無所謂漸進增強和優雅降級的問題。但是客戶端程式則不是開發者所能控制的(你總不能強制使用者去升級它們的瀏覽器吧)。我們所謂的客戶端,可以指瀏覽器,行動終端設備(如:手機,平板電腦,智慧手錶等)以及它們對應的應用程式(瀏覽器對應的是網站,行動終端設備對應的是對應的APP) 。
現在有很成熟的技術,能夠讓你分析使用你客戶端程式的版本比例。如果低版本用戶居多,當然優先採用漸進增強的開發流程;如果高版本用戶居多,為了提高大多數用戶的使用體驗,那當然優先採用優雅降級的開發流程。
然而事實情況是怎麼樣的呢?絕大多數的大公司都是採用漸進增強的方式,因為業務優先,提升使用者體驗永遠不會排在最前面。例如:新浪微博網站前端的更新,擁有這種億級用戶的網站,絕對不可能追求某個特效而不考慮低版本用戶可不可用,一定是確保低版本到高版本的可訪問性,再去漸進增強,採用新功能提供高版本使用者更好的使用者體驗。但也不是沒有反例。如果你開發的是青少年的軟體(或網站),你知道這個群體的人總是喜歡嘗試新事物,總是喜歡酷炫的特效,總是喜歡把它們的軟體更新到最新版本(而不像我們老一輩的用戶)。面對這種情況,漸進增強的開發流程實為選舉。
以上內容就是css3的漸進增強和優雅降級講解,希望能幫助大家。
#關於漸進增強和優雅降級_html/css_WEB-ITnose
#javascript的漸進增強與平穩退化淺談_javascript技巧
以上是css3中的漸進增強與優雅降級的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

熱門話題

在 Bootstrap 中插入圖片有以下幾種方法:直接插入圖片,使用 HTML 的 img 標籤。使用 Bootstrap 圖像組件,可以提供響應式圖片和更多樣式。設置圖片大小,使用 img-fluid 類可以使圖片自適應。設置邊框,使用 img-bordered 類。設置圓角,使用 img-rounded 類。設置陰影,使用 shadow 類。調整圖片大小和位置,使用 CSS 樣式。使用背景圖片,使用 background-image CSS 屬性。

如何使用 Bootstrap 按鈕?引入 Bootstrap CSS創建按鈕元素並添加 Bootstrap 按鈕類添加按鈕文本

創建 Bootstrap 分割線有兩種方法:使用 標籤,可創建水平分割線。使用 CSS border 屬性,可創建自定義樣式的分割線。

要調整 Bootstrap 中元素大小,可以使用尺寸類,具體包括:調整寬度:.col-、.w-、.mw-調整高度:.h-、.min-h-、.max-h-

要設置 Bootstrap 框架,需要按照以下步驟:1. 通過 CDN 引用 Bootstrap 文件;2. 下載文件並將其託管在自己的服務器上;3. 在 HTML 中包含 Bootstrap 文件;4. 根據需要編譯 Sass/Less;5. 導入定製文件(可選)。設置完成後,即可使用 Bootstrap 的網格系統、組件和样式創建響應式網站和應用程序。

答案:可以使用 Bootstrap 的日期選擇器組件在頁面中查看日期。步驟:引入 Bootstrap 框架。在 HTML 中創建日期選擇器輸入框。 Bootstrap 將自動為選擇器添加樣式。使用 JavaScript 獲取選定的日期。

HTML定義網頁結構,CSS負責樣式和佈局,JavaScript賦予動態交互。三者在網頁開發中各司其職,共同構建豐富多彩的網站。

在 Bootstrap 中驗證日期,需遵循以下步驟:引入必需的腳本和样式;初始化日期選擇器組件;設置 data-bv-date 屬性以啟用驗證;配置驗證規則(如日期格式、錯誤消息等);集成 Bootstrap 驗證框架,並在表單提交時自動驗證日期輸入。
