日期:2014-05-16  浏览次数:20621 次

为何在有 DOCTYPE 的 HTML 文档之上仍然还会出现混杂模式?

不使用 DOCTYPE 一定会使 HTML 文档处于混杂模式,然而使用了 DOCTYPE,也不一定就能够使文档在所有浏览器中均处于标准模式。

DOCTYPE 本身不就是一个“开关”吗?为何在有 DOCTYPE 的 HTML 文档之上仍然还会出现混杂模式?这个和以下条件有关:

  • 使用了本身就会使浏览器进入混杂模式的古老的甚至是错误的 DOCTYPE
  • 在 DOCTYPE 之前出现了其他内容,如注释,甚至是 HTML 标签

加一个标准的 DOCTYPE就不会了:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">