英文原文: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")特點是支持業界標準最為完善。然而要利用這個增強的支持功能,網頁必須包含恰當的指令。
若一個網頁沒有包含指令,IE6會將它以quirks mode顯示。若網頁包含有效的指令但瀏覽器無法辨識,IE6會將它以IE6 standards mode顯示。因為少數網站已經包含指令,兼容性模式的切換相當成功。這使網頁開發人員能選擇將他們的網頁轉移為standards mode的最佳時機。
隨著時間經過,更多網站開始使用standards mode。它們也開始使用IE6的特性和功能來檢測IE。舉例來說,IE6不支持universal selector(即css之全局選擇器 * {}),一些網站便使用它來針對IE做特定的對應。
當 IE7增加了對全域選擇器的支持,那些依賴IE6特點的網站便無法偵測出這個新版本的瀏覽器。因此那些針對IE的特定對應無法應用于IE7,造成這些網站便無法如他們預期的顯示。由于只支持兩種兼容性模式,受到影響的網站擁有者被迫更新他們的網站使其能支持IE7。
IE8 比之前的任何版本瀏覽器都更支持業界標準,因此針對舊版本瀏覽器設計的網頁可能無法如預期般呈現。為了幫助減輕所有問題,IE8引入文件兼容性的概念,使你能選擇你的網頁設計要對應的特定IE版本。文件兼容性在IE8增加了一些新的模式,這些模式能告訴瀏覽器如何解析和編譯一個網頁。若你的網頁無法在 ie8正確的顯示,你可以更新你的網站使它支持最新的網頁標準(優先選項)或在你的頁面上新增一個meta元素用于告訴IE8如何依照舊版本瀏覽器編譯你的頁面。
這能讓你選擇將你的網站更新支持IE8新特點的時機。
認識文件兼容性模式
IE8支持幾種文件兼容性模式,它們具有不同的特性并影響內容顯示的方式。
•Emulate IE8 mode指示IE使用指令來決定如何編譯內容。Standards mode指令會顯示成IE8 Standards mode而quirks mode會顯示成IE5 mode。不同于IE8 mode,Emulate IE8 mode重視指令。
•Emulate IE7 mode指示IE使用指令來決定如何編譯內容。Standards mode指令會顯示成IE7 Standards mode而quirks mode會顯示成IE5 mode。不同于IE7 mode,Emulate IE7 mode重視指令。對于許多網頁來說這是最推薦的兼容性模式。
•IE5 mode 編譯內容如同IE7的quirks mode之顯示狀況,和IE5中顯示的非常類似。
•IE7 mode編譯內容如同IE7的standards mode之顯示狀況,無論網頁是否含有指令。
•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版本所能支持的最高模式來顯示所瀏覽的網頁內容,建議僅使用于測試頁及其他非商用頁面。
指定文件兼容性模式
要為你的網頁指定文件模式,需要在你的網頁中使用meta元素放入X-UA-Compatible http-equiv 標頭。以下是指定為Emulate IE7 mode 兼容性之范例。
Content goes here.