搜尋
首頁web前端css教學css3中的漸進增強與優雅降級

css3中的漸進增強與優雅降級

Dec 05, 2017 pm 01:51 PM
csscss3

漸進增強和優雅降級這兩個概念是在 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中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
我們如何標記Google字體並創建Goofonts.com我們如何標記Google字體並創建Goofonts.comApr 12, 2025 pm 12:02 PM

Goofonts是由開發人員和設計師丈夫簽名的附帶項目,它們都是版式的忠實擁護者。我們一直在標記Google

永恆的Web開發文章永恆的Web開發文章Apr 12, 2025 am 11:44 AM

Pavithra Kodmad向人們詢問了他們認為是關於網絡開發的一些最永恆的文章的建議

與部分元素的交易與部分元素的交易Apr 12, 2025 am 11:39 AM

同一天發表了兩篇文章:

使用JavaScript API練習GraphQl查詢使用JavaScript API練習GraphQl查詢Apr 12, 2025 am 11:33 AM

學習如何構建GraphQL API可能具有挑戰性。但是您可以學習如何在10分鐘內使用GraphQL API!碰巧的是,我得到了完美的

組件級CMS組件級CMSApr 12, 2025 am 11:09 AM

當一個組件生活在數據查詢居住在附近的數據查詢的環境中時,視覺組件和

將類型設置在圓上...帶偏移路徑將類型設置在圓上...帶偏移路徑Apr 12, 2025 am 11:00 AM

這裡是Yuanchuan的一些合法CSS騙局。有此CSS屬性偏移路徑。曾幾何時,它被稱為Motion-Path,然後被更名。我

'恢復”在CSS中有什麼作用?'恢復”在CSS中有什麼作用?Apr 12, 2025 am 10:59 AM

Miriam Suzanne在Mozilla開發人員的視頻中解釋了該主題。

現代戀人現代戀人Apr 12, 2025 am 10:58 AM

我喜歡這樣的東西。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
4 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

WebStorm Mac版

WebStorm Mac版

好用的JavaScript開發工具

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

Dreamweaver Mac版

Dreamweaver Mac版

視覺化網頁開發工具

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器