開發時靜態 HTML 預覽正常,但改為 PHP 動態輸出後,在 IE 核心瀏覽器(IE6~11、舊版 Edge、國產雙核瀏覽器 IE 模式)中頁面整體向左偏移。經排查發現:註釋寫在 <!DOCTYPE 宣告之前,導致瀏覽器進入 Quirks Mode(相容模式),盒模型解析異常。
<!-- 這行註釋在 DOCTYPE 之前 -->
<!DOCTYPE html>
<html>
<head><title>測試頁</title></head>
<body><div class="container">內容</div></body>
</html>
<!DOCTYPE 必須位於文件**最前面**(前面只能有 BOM)。width 包含 padding/border、body 預設 margin 不同、置中方式 margin:0 auto 失效等,導致版面偏左。echo 或 include 產生輸出,就會觸發此問題。<html> 內部或 <head> 區塊。ob_start() 統一控制。{* *}、{# #} 註釋,確認編譯後不會輸出到 DOCTYPE 前。<?php // 無任何輸出、空白、BOM ?>
<!DOCTYPE html>
<html lang="zh-Hant">
<head>
<meta charset="UTF-8">
<title>頁面標題</title>
</head>
<body>
<!-- 這裡可以放註釋 -->
<div class="container">內容</div>
</body>
</html>
<body> 開頭加入 <!--[if IE]>IE 模式測試<![endif]--> 觀察版面變化。<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7"> 強制降級。X-UA-Compatible: IE=7。現代專案建議統一使用 <!DOCTYPE html>(HTML5 簡短宣告),並確保無任何字元置於其前,即可避免此類版面異常。