DOCTYPE与标准模式与混杂模式
|
|
DOCTYPE是什么
DOCTYPE:文档类型声明,它告诉浏览器以哪种标准来解析文档。
DOCTYPE定义了三种DTD(文档类型定义):
- 严格版本
- 过渡版本
- 基于框架的HTML
|
|
以上三个是几个常见的DOCTYPE写法。
标准模式与混杂模式
而所谓标准模式和混杂模式,是浏览器厂商为了保证浏览器的向后兼容性而创建的两种呈现模式。而这两种模式的触发与DOCTYPE是否存在以及使用哪种DTD有关。
- 如果XHTML包含完整的DOCTYPE,则它一般以标准模式呈现
- 对于HTML4.01文档
- DTD若为严格版本,则页面一般以标准模式呈现
- DTD若为过渡版本且带有URL,则页面以标准模式呈现;如果DTD为过度版本但是没有URL,则页面以混杂模式呈现
- DOCTYPE不存在或者形式不正确,页面以混杂模式呈现
- HTML5页面以标准模式呈现
如何检测
可以通过document.compatMODE来检测文档以哪种模式渲染的。
- 若document.compatMODE值为css1Compat,则为标准模式
- 若document.compatMODE值为BackCompat则为混杂模式
- 若document.compatMODE值为undefined则为混杂模式
注:使用标准模式与混杂模式会有许多细微区别,不同浏览器不同标准表现都不一样,但是使用标准模式对页面的要求更为严格。