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