當(dāng)微軟開始產(chǎn)生與標(biāo)準(zhǔn)兼容的瀏覽器時(shí),他們希望確保向后兼容性。為了實(shí)現(xiàn)這一點(diǎn),他們IE6.0以后的版本在瀏覽器內(nèi)嵌了兩種表現(xiàn)模式:
Standards Mode(標(biāo)準(zhǔn)模式或Strict Mode)和Quirks mode(怪異模式或兼容模式Compatibility
Mode)。在標(biāo)準(zhǔn)模式中,瀏覽器根據(jù)W3C所定的規(guī)范來顯示頁面;而在怪異模式中,頁面將以IE5,甚至IE4的顯示頁面的方式來表現(xiàn),以保持以前的網(wǎng)
頁能正常顯示。
對于這兩種模式引起最大的問題就是盒模式的問題,或者現(xiàn)在大家已經(jīng)忽視了IE5的存在,但是,IE在怪異模式運(yùn)行的盒模式依然在最新版本的IE7保留著,一旦應(yīng)用不得當(dāng),IE7將變成跟IE5一樣愚蠢。
當(dāng)然,不只IE瀏覽器存在兩種模式。
Opera 瀏覽器 (Opera 7~8) 支持與 IE 相同的兩種呈現(xiàn)模式:Quirks Mode和 Standards Mode(有關(guān)詳細(xì)信息,請參閱 http://www.opera.com/docs/specs/doctype/),但是Opera9的Quirks Mode又不與之前的Quirks Mode呈現(xiàn)不一樣,比如不再兼容IE5那種盒模式。
Mozilla Firefox 1+ 支持三種呈現(xiàn)模式:Quirks Mode、Almost Standards
Mode(幾乎標(biāo)準(zhǔn)的模式)和 Standards Mode。Firefox 的 Almost Standards 模式對應(yīng)于 IE 和
Opera 的 Standards 模式。其中的Almost Standards
Mode,除了在處理表格的方式方面有一些細(xì)微的差異之外,這種模式與標(biāo)準(zhǔn)模式基本相同。對于進(jìn)入Quirks Mode的可參考http://www.mozilla.org/docs/web-developer/quirks/doctypes.html)
說了這樣多可能你還不知道是到底Mode是怎樣。現(xiàn)在試一下html 4的。
為什么要選擇html4 呢?因?yàn)樘嗳苏J(rèn)為只有xhtml才是符合標(biāo)準(zhǔn)的,又有多少人真的在使用xhtml呢?
可以先打開前兩個(gè)看代碼比較一下.
- http://labs.aoao.org.cn/test/doctype/html4strict/
- http://labs.aoao.org.cn/test/doctype/html4/
- http://labs.aoao.org.cn/test/doctype/ishtml4strict/
當(dāng)沒有使用DTD聲明或者使用HTML4以下(不包括HTML4)的DTD聲明時(shí),基本所有的瀏覽器都是使用Quirks Mode呈現(xiàn)。
也就是前兩個(gè)code是一樣,可是為什么運(yùn)行結(jié)果不一樣呢?因?yàn)榈谝粋€(gè)使用了DTD 聲明html是 html4 strict的文檔,IE6+的IE會(huì)開啟標(biāo)準(zhǔn)模式來處理網(wǎng)頁,第三個(gè)屬于一個(gè)垃圾的方式把IE引入 quirks mode ^_^ 我常常用這招哦
我只是列出兩個(gè)比較典型的問題,不同模式還會(huì)引起一大堆問題。有興趣的朋友可以再找一下資料。
其實(shí)關(guān)于瀏覽器的模式問題我還寫了很多,因?yàn)槠渌麊栴}暫時(shí)沒發(fā)出來,只是最近看到無憂上又在鬧Web標(biāo)準(zhǔn)的事,突然發(fā)現(xiàn)某方連IE都不了解,哎!
document.compatMode可參考