X-UA-Compatible是IE8的一個專有<meta>屬性,它告訴IE8采用何種IE版本去渲染網頁,在html的<head>标簽中使用。可以在微軟官方文檔擷取更多介紹。
在IE8剛推出的時候,很多網頁由于重構的問題,無法适應較進階的浏覽器,是以使用X-UA-Compatible标簽強制IE8采用低版本方式渲染。
使用下面這段代碼後,開發者無需考慮網頁是否相容IE8浏覽器,隻要確定網頁在IE6、IE7下的表現就可以了。
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />
//emulate 仿真
給網站添加X-UA-Compatible标簽
我建議使用下面的X-UA-Compatible标簽:
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
IE=edge告訴IE使用最新的引擎渲染網頁,chrome=1則可以激活Chrome Frame
為了不掩蓋重點,直接看
既然IE=edge是“以最進階别的可用模式顯示内容”,那是不是和去掉相同的效果?
有些因素會自動觸發相容性文檔視圖,這個時候設定X-UA-Compatible就可以防止這個自動觸發的行為。
預設行為大緻有這些:
存在于系統資料庫中的相容性視圖清單,當url比對時将自動切換到相容性視圖
在系統資料庫中的對應字段指定了使用相容性視圖來顯示所有網站
未指定DOCTYPE,則使用Quirks模式
曾經遇到過錯誤
一個有意思的事實是,設定了<meta http-equiv="X-UA-Compatible" content="IE=edge">之後,即使未聲明doctype,在IE8、IE9(未測試IE10+,不過行為應該類似)下面,頁面也不會進入quirks模式。
使用 X-UA-Compatible 标頭可指定頁面支援的 Internet Explorer 版本。 使用 document.documentMode 可确定網頁的相容性模式。
<meta http-equiv="X-UA-Compatible" content="IE=5" />
像是使用了 Windows Internet Explorer 7 的 Quirks 模式,這與 Windows Internet Explorer 5 顯示内容的方式很相似。
<meta http-equiv="X-UA-Compatible" content="IE=7" />
無論頁面是否包含 <!DOCTYPE> 指令,均使用 Windows Internet Explorer 7 的标準渲染模式。
<meta http-equiv="X-UA-Compatible" content="IE=8" />
開啟 IE8 的标準渲染模式,但由于本身 X-UA-Compatible 檔案頭僅支援 IE8 以上版本,是以等同于備援代碼。
<meta http-equiv="X-UA-Compatible" content="edge" />
Edge 模式通知 Windows Internet Explorer 以最進階别的可用模式顯示内容,這實際上破壞了“鎖定”模式。
EmulateIE7 模式通知 Windows Internet Explorer 使用 <!DOCTYPE> 指令确定如何呈現内容。标準模式指令以Windows Internet Explorer 7 标準模式顯示,而 Quirks 模式指令以 IE5 模式顯示。與 IE7 模式不同,EmulateIE7 模式遵循 <!DOCTYPE> 指令。對于多數網站來說,它是首選的相容性模式。
在現階段,IE8 版本推向市場沒有多久,份額不高。是以,考慮相容舊版本的模式值得推薦。