HTML的严格模式和混杂模式

来源:互联网 发布:淘宝外用增大药有用吗 编辑:程序博客网 时间:2024/05/29 04:22
声明位于文档的最前位置,处于标签之前,可以告诉浏览器使用哪种html/xhmtl文档

该标签有三种类型:严格版本、过度版本、以及基于框架的html文档

1.浏览器模式

标准模式:浏览器根据规范呈现页面

混杂模式:页面以一种比较宽松的向后兼容的方式显示,混杂模式通常模拟老浏览器的行为已防止老式站点无法工作

2.差异

(1) IE的盒模型,i6标准模式使用标准的盒模型,混杂模式使用的老式专有盒模型(宽度包括padding和border)

(2) 对16进制的颜色不用加#

(3) 没有单位的长度单位为px

(4) 关键字字号加一级

3.如何触发这两种模式

总的来说,浏览器根据doctype是否存在以及使用的哪种dtd来选择使用哪种模式来呈现,具体规则如下:

(1). 对于xhtml来说,一般包含完整的doctype,则以标准模式呈现

(2). 对于html4.0.1,包含严格dtd的doctype常常导致页面以标准模式呈现,包含过渡dtd和uri的doctype也会以标准模式呈现,但是有过渡dtd没有uri的页面以混杂模式呈现

(3). doctype不存在或则不正确,页面会以混杂模式呈现
(4). 对于传统的xml定义,例如:<?xml version="1.0" encoding="utf-8"?>,如果将这句话放在页面的顶部,则在i6下以混杂模式呈现

  当浏览器厂商开始创建与标准兼容的浏览器时,他们希望确保向后兼容性。为了实现这一点,他们创建了两种呈现模式:标准模式和混杂模式

  >>在标准模式中,浏览器以其支持的最高标准呈现页面。

  >>在混杂模式中,页面以一种比较宽松的向后兼容的方式显示。混杂模式通常模拟老式浏览器的行为以防止老站点无法工作。

 

  关于模式触发  浏览器根据DOCTYPE是否存在以及使用的哪种DTD来选择要使用的呈现方法。

  如果XHTML、HTML 4.01文档包含形式完整的DOCTYPE,那么它一般以标准模式呈现。

  包含过渡DTD和URI的DOCTYPE也导致页面以标准模式呈现,但是有过渡DTD而没有URI会导致页面以混杂模式呈现。

  DOCTYPE不存在或形式不正确会导致HTML和XHTML文档以混杂模式呈现。

  html5既然没有DTD,也就没有严格模式与宽松模式的区别,html5有相对宽松的语法,实现时,已经尽可能大的实现了向后兼容。

如何触发文档模式:

触发混杂模式:

如果在文档开始处没有发现文档类型声明,则所有浏览器都会默认开启混杂模式。但采用混杂模式不是什么值得推荐的做法,因为不同浏览器在这种模式下的行为差异非常大,如果不使用某些hack技术,跨浏览器的行为根本就没有一致性可言。

触发标准模式:

<!-- HTML 4.01 严格型 --> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <!-- XHTML 1.0 严格型 --> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

触发准标准模式:

<!-- HTML 4.01 过渡型 -->

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

<!-- HTML 4.01框架集型 -->

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

<!-- XHTML 1.0 过渡型 -->

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<!-- XHTML 1.0 框架集型 -->

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">

IE8中关闭超级标准模式:

<meta http-equiv="X-UA-Compatible" content="IE=7" /> //content属性中IE的值用于指定使用哪个版本的呈现引擎来呈现页面。设计这个值的目的就是为了向后兼容那些专门为老版本的IE设计的站点和页面。

文章参考:http://www.myexception.cn/HTML-CSS/1509497.html
https://zhidao.baidu.com/question/2205956093438804708.html
http://www.cnblogs.com/shenxiaolin/p/5425249.html
原创粉丝点击