瀏覽器模式 & <!DOCTYPE>
、<meta X-UA-Compatible>
終極備忘
——基于 Hixie 經(jīng)典長文《Activating Browser Modes with Doctype》重新梳理,
由編程獅(w3cschool.cn)翻譯、精簡、本土化,5 分鐘背完 90% 考點(diǎn)。
1 一句話結(jié)論(先背再讀)
所有新頁面用一句頭即可:
<!doctype html>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
作用 | 含義 |
---|---|
<!doctype html> |
觸發(fā) 標(biāo)準(zhǔn)模式(Chrome/Firefox/Edge 通用) |
IE=edge |
讓 IE8~11 永遠(yuǎn)不用兼容視圖 |
2 瀏覽器到底有幾種模式?
2.1 通用三大模式(所有瀏覽器)
模式 | 觸發(fā)方式 | 結(jié)果 |
---|---|---|
Quirks(怪異模式) | 無 <!DOCTYPE> 或早期 DTD |
模擬 IE5.5,CSS 盒模型錯(cuò)位 |
Almost Standards | HTML 4.01 Transitional 等 | 表格行高計(jì)算舊邏輯(圖片縫隙) |
Standards(標(biāo)準(zhǔn)模式) | <!doctype html> 或現(xiàn)代 DTD |
按規(guī)范渲染,推薦 |
2.2 IE 獨(dú)有的附加模式(了解即可)
值 | 含義 | 備注 |
---|---|---|
IE=EmulateIE7 |
強(qiáng)制 IE7 渲染 | 僅遺留系統(tǒng)維護(hù) |
IE=EmulateIE8 |
強(qiáng)制 IE8 渲染 | 同上 |
IE=Edge |
當(dāng)前最高 IE 引擎 | 2025 年通用 |
3 觸發(fā)優(yōu)先級(jí)(記住 3 句話)
- HTTP 響應(yīng)頭 >
<meta>
> 用戶手動(dòng)兼容視圖 - IE8+ 默認(rèn)看
<!DOCTYPE>
,除非被組策略/用戶按鈕覆蓋 - Edge(Chromium)已徹底拋棄 IE 模式,可忽略
4 實(shí)戰(zhàn)模板(復(fù)制即用)
4.1 HTML5 通用起手
<!doctype html>
<html lang="zh-CN">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>編程獅示例頁</title>
</head>
<body>
<h1>Hello W3Cschool!</h1>
</body>
</html>
4.2 服務(wù)器直接加頭(更快)
Nginx:
add_header X-UA-Compatible "IE=edge";
Apache:
Header set X-UA-Compatible "IE=edge"
5 常見坑位速查
場景 | 風(fēng)險(xiǎn) | 解決 |
---|---|---|
企業(yè)內(nèi)網(wǎng)被強(qiáng)制 IE7 | CSS3/ES5 失效 | HTTP 頭 + <meta> 雙保險(xiǎn) |
iframe 嵌套 | 父頁面強(qiáng)制兼容視圖 | 同樣加頭 |
舊項(xiàng)目用 HTML4 Transitional | 觸發(fā) Almost Standards | 升級(jí) HTML5 |
6 決策樹(1 張圖秒懂)
graph TD
A[新頁面?] -->|是| B[用 `<!doctype html>` + `IE=edge`]
A -->|否| C[舊系統(tǒng)]
C -->|僅 IE7| D[臨時(shí) `IE=EmulateIE7`]
C -->|現(xiàn)代瀏覽器| B
7 一句話速背口訣
“起手
<!doctype html&
,IE 加edge
,企業(yè)頭也配;
怪異模式別碰,表格圖片不碎?!?/p>