英文原文:http://msdn.microsoft.com/en-us/library/cc288325(VS.85).aspx
文件兼容性用於定義讓IE如何編譯你的網頁。此文件解釋文件兼容性,如何指定你網站的文件兼容性 模式以及如何判斷一個網頁該使用的文件模式。
前言
為了幫助確保你的網頁在所有未來的IE版本都有一致的外觀,IE8引入了文件兼容性。在IE6中引入一 個增設的兼容性模式,文件兼容性使你能夠在IE呈現你的網頁時選擇特定編譯模式。
新的IE為了確保網頁在未來的版本中都有一支的外觀,IE8引入了文件兼容性。當你引入一個增設的兼 容性模式,
此文章說明文件兼容性的必要性,列出現有版本IE能使用的文件兼容性模式並示范如何選擇特定的兼 容性模式。
了解文件兼容性的必要性
每個主要版本IE新增的功能都是為了讓浏覽器更容易使用、增加安全性及更支持業界標准。以這些作 為IE的特色,其中一個風險就是舊版本網站無法正確的顯示。
為了將這個風險降到最低,IE6允許網頁開發人員選擇IE編譯和顯示他們網頁的方式。"Quirks mode" 為預設,這會使頁面以舊版本浏覽器的視點顯示,"Standards mode"(也稱為"strict mode")特點是支持 業界標准最為完善。然而要利用這個增強的支持功能,網頁必須包含恰當的<!DOCTYPE>指令。
若一個網頁沒有包含<!DOCTYPE>指令,IE6會將它以quirks mode顯示。若網頁包含有效的 <!DOCTYPE>指令但浏覽器無法辨識,IE6會將它以IE6 standards mode顯示。因為少數網站已經包 含<!DOCTYPE>指令,兼容性模式的切換相當成功。這使網頁開發人員能選擇將他們的網頁轉移為 standards mode的最佳時機。
隨著時間經過,更多網站開始使用standards mode。它們也開始使用IE6的特性和功能來檢測IE。舉例 來說,IE6不支持universal selector(即css之全局選擇器 * {}),一些網站便使用它來針對IE做特定的 對應。
當 IE7增加了對全域選擇器的支持,那些依賴IE6特點的網站便無法偵測出這個新版本的浏覽器。因此 那些針對IE的特定對應無法應用於IE7,造成這些網站便無法如他們預期的顯示。由於<!DOCTYPE> 只支持兩種兼容性模式,受到影響的網站擁有者被迫更新他們的網站使其能支持IE7。
IE8 比之前的任何版本浏覽器都更支持業界標准,因此針對舊版本浏覽器設計的網頁可能無法如預期 般呈現。為了幫助減輕所有問題,IE8引入文件兼容性的概念,使你能選擇你的網頁設計要對應的特定IE 版本。文件兼容性在IE8增加了一些新的模式,這些模式能告訴浏覽器如何解析和編譯一個網頁。若你的 網頁無法在 ie8正確的顯示,你可以更新你的網站使它支持最新的網頁標准(優先選項)或在你的頁面上新 增一個meta元素用於告訴IE8如何依照舊版本浏覽器編譯你的頁面。
這能讓你選擇將你的網站更新支持IE8新特點的時機。
認識文件兼容性模式
IE8支持幾種文件兼容性模式,它們具有不同的特性並影響內容顯示的方式。
Emulate IE8 mode指示IE使用<!DOCTYPE>指令來決定如何編譯內容。Standards mode指令會顯 示成IE8 Standards mode而quirks mode會顯示成IE5 mode。不同於IE8 mode,Emulate IE8 mode重視 <!DOCTYPE>指令。
Emulate IE7 mode指示IE使用<!DOCTYPE>指令來決定如何編譯內容。Standards mode指令會顯 示成IE7 Standards mode而quirks mode會顯示成IE5 mode。不同於IE7 mode,Emulate IE7 mode重視 <!DOCTYPE>指令。對於許多網頁來說這是最推薦的兼容性模式。
IE5 mode 編譯內容如同IE7的quirks mode之顯示狀況,和IE5中顯示的非常類似。
IE7 mode編譯內容如同IE7的standards mode之顯示狀況,無論網頁是否含有<!DOCTYPE>指令。
IE8 mode提供對業界標准的最高支持,包含 W3C Cascading Style Sheets Level 2.1 Specification 和W3C Selectors API,並有限的支持 W3C Cascading Style Sheets Level 3 Specification (Working Draft)。
Edge mode指示IE以目前可用的最高模式顯示內容。當使用IE8時其等同於IE8 mode。若(假定)未來放 出支持更高兼容性模式的IE,使用Edge mode的頁面會使用該版本能支持的最高模式來顯示內容。同樣的 那些頁面在使用IE8浏覽時仍會照常顯示。
由於edge mode使用該IE版本所能支持的最高模式來顯示所浏覽的網頁內容,建議僅使用於測試頁及其 他非商用頁面。