不使用 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">