本文將討論IE8瀏覽器如何確定用以渲染網站的文檔模式,如怪異模式(又稱IE5模式)和標準模式(更多資料,英文:http://en.wikipedia.org/wiki/Quirks_mode)。該內容對于開發人員和客戶來說,是很重要的。
與此相關的,是我們最近更新的兼容性視圖列表。此列表內容自從去年3月IE8正式版發布以來,已經減少了1000多個網站。從最初的3100多,減少到了現在的2000多一點。在與網站開發人員及標準制定人員的共同努力下,我們很高興地看到需要出現在兼容性視圖(CV)列表中的網站不斷地在減少。
數據驅動的設計
在討論設計細節之前,我想和大家分享一些我們用于設計兼容性體驗的數據。
讓我們來看一下世界范圍內的上千個高流量網站,如QQ.com和netlog.com,以及那些最初列入兼容性視圖列表中(英文資料:兼容性視圖列表)的網站的doctype(wikipedia英文資料,百度百科,CSDN社區)和X-UA-Compatible meta標簽和頭部:
26%的網站指定使用怪異模式,如果amazon.com,tworld.co.kr和unibanco.com.br。
41%的網站使用了Transitional文檔類型,即準標準模式(mozilla英文資料)。
14%的網站已經添加了X-UA-Compatible meta標簽或HTTP響應頭,從而使用IE7標準模式進行渲染。
以上的數據是可以理解的:許多高流量網站需要在盡可能多的瀏覽器中渲染,這就是為什么他們會使用怪異模式。許多網站有專門針對IE7的頁面而且許多網站創作工具,如Aptana Studio(英文網站)和ExPRession Web,則默認指定使用Transitional文檔類型:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
如果考慮一下網絡的規模,那么將有幾十億的網頁,分別指定使用怪異模式,IE7,準標準模式,或最新的標準模式。IE需要支持所有這些網站以確保世界范圍內的用戶擁有最好的體驗。
有這些數據在手,我們設計IE8時考慮到了以下一些原則:
默認情況下,使用最標準的方式渲染網頁。 如此前(IEblog英文,未翻譯)的帖子(IEBlog英文,未翻譯)所明確的,我們致力于互操作性,這便意味著默認情況下,使用最標準的方式渲染網頁。
用戶只是期待網頁在IE中正常工作。 一小部分用戶將需要改進那些在IE7標準模式中工作得最好的網站,以便使其可以工作在IE8的最標準的默認模式中。至于其他所有人,IE8提供了兼容性視圖設置(IEBlog英文,未翻譯)。
在這里,最好的用戶體驗是一切自動地如網站設計者希望的那樣工作。這就是為什么我們提供了兼容性視圖列表(MSDN英文資料)。與此同樣重要的是,用戶可以通過兼容性視圖按鈕,修復那些尚未加入列表中網站。
網站開發者完全掌控他們的內容如何被渲染。 X-UA-Compatible meta標簽和頭部會覆蓋IE和用戶的設置。他們也使網站開發者可以細粒度地調控如何在IE中渲染每一個網頁。
比如,有些網站擁有一些專門為怪異模式寫的網頁,而另一些則為IE7標準模式。當IE收到的X-UA-Compatible頭的值為EmulateIE7時,便會相應地以怪異模式或IE7標準模式進行渲染。
給網站開發者以工具和時間,幫助他們轉換到IE8標準模式。 IE8引入了X-UA-Compatible meta標簽和頭部,這便給網站開發者提供了時間以轉換到IE8標準模式。正如上文提到的,許多網站已經使用了這些機制來指定他們的內容必須使用IE7標準模式。
IE8如何確定文檔模式的圖解
給定了以上的原則,這里有四條規則明確了IE如何處理文檔類型(doctype),X-UA-Compatible meta標簽和頭部,開發人員工具,以及兼容性視圖設置。這些標準自上而下出現在下面的圖解中。
開發人員工具的設置會覆蓋一個標簽(tab)中所顯示的頁面的全部文檔模式。
X-UA-Compatible meta標簽及此后的頭部,覆蓋兼容性視圖設置和文檔類型(doctype),除非X-UA-Compatible的值是EmulateIE7或EmulateIE8。
用戶的兼容性視圖設置(IEBlog英文,未翻譯)會覆蓋微軟兼容性視圖列表(MSDN英文資料)。
如果沒有上述規則中的任何一種可以適用,則有文檔類型(doctype)將決定網頁使用以下哪一種模式進行渲染:IE8標準模式,IE8準標準模式,或怪異模式。
兼容性和互操作性是很復雜的。為了降低開發人員和用戶使用的復雜度,我們希望看到更多的網站淘汰舊式的瀏覽器模式。我們也尊重網站開發人員對模式的選擇。我們很高興和網站所有者及標準組織成員繼續(IEBlog英文,未翻譯)提高(IEBlog英文,未翻譯)IE的(IEBlog英文,未翻譯)互操作性標準的實現。
新聞熱點
疑難解答