如何理解DocType? 什么是严格模式与混杂模式?如何触发这两种模式?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何理解DocType? 什么是严格模式与混杂模式?如何触发这两种模式?相关的知识,希望对你有一定的参考价值。

1.Doctype声明位于文档中的最前面的位置,处于标签之前,此标签可告知浏览器文档使用哪种 html 或 XHTML 规范,该标签可声明三种DTD 类型,分别表示严格版本、过渡版本以及基于框架的 HTML 文档。
2.当浏览器厂商开始创建与标准兼容的浏览器时,为了确保向后兼容性,他们把浏览器的工作模式(渲染模式)分为标准模式和混杂模式。在标准模式中,浏览器根据规范呈现页面;在混杂模式中,页面以一种比较宽松的向后兼容的方式显示,混杂模式通常模拟老式浏览器的行为以防止老站点无法工作。
3.如何触发这两种模式?
1)加入xml头部声明,可以触发IE浏览器的Quirks mode怪异模式。触发之后,浏览器解析方式就和IE5.5一样,拥有IE5.5一样的bug和其他问题,行为(javascript)也是如此。
2)触发IE6的混杂模式:在XHTML的DOCTYPE前加入XML声明
<?xml version="1.0" encoding="utf-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">。
3)触发IE7的混杂模式:在XML声明和XHTML的DOCTYPE之间,加入HTML注释<?xml version="1.0" encoding="utf-8"?><!-- ... and keep IE7 in quirks mode --><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">。
4)IE6和IE7都可以触发的:在HTML4.01的DOCTYPE文档头部,加入HTML注释<!-- quirks mode --> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">。
5)在页面顶部加 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> ,将触发"怪异模式"。
6)没有使用DTD声明或者使用HTML4以下(不包括HTML4)的DTD声明时,基本上所有的浏览器都是使用quirks mode呈现。

以上是关于如何理解DocType? 什么是严格模式与混杂模式?如何触发这两种模式?的主要内容,如果未能解决你的问题,请参考以下文章

html的doctype作用?严格模式与混杂模式如何区分?它们有何意义

Doctype作用?严格模式与混杂模式如何区分?它们有何意义?

Doctype作用?严格模式与混杂模式如何区分?它们有何差异?

Doctype作用?严格模式与混杂模式如何区分?它们有何意义?

Doctype作用?严格模式与混杂模式如何区分?它们有何意义

严格模式与混杂模式