您现在的位置:首页 >> 前端 >> 内容

DOCTYPE与浏览器模式

时间:2016/12/20 9:21:00 点击:

  核心提示:问:Doctype作用?严格模式与混杂模式如何区分?它们有何意义?答:DOCTYPE是文档类型声明,出现在html文档的第一行,处于标签之前。告知浏览器的解析器用什么文档标准解析这个文档。严格模式是指...

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

答:
DOCTYPE是文档类型声明,出现在html文档的第一行,处于

标签之前。告知浏览器的解析器用什么文档标准解析这个文档。

严格模式是指浏览器按照最高标准来解析文档;
混杂模式则是使用比较宽松的向后兼容的方式显示。模拟老式浏览器的行为以防止站点无法工作。
浏览器根据doctype是否存在以及其声明的DTD来决定呈现模式。

Doctype切换是浏览器用来区分遗留文档和符合标准的文档的手段。无论是否编写了有效的css,如果选择了错误的Doctype,那么页面将以混杂模式呈现。

问:
HTML5 为什么只需要写 ?

答:
HTML5 不基于 SGML,因此不需要对DTD进行引用,但是需要doctype来规范浏览器的行为(让浏览器按照它们应该的方式来运行);
而HTML4.01基于SGML,所以需要对DTD进行引用,才能告知浏览器文档所使用的文档类型。

SGML

标准通用标记语言。
是现在常用的超文本格式的最高层次标准,是可以定义标记语言的元语言
HTML和XML都是从它派生出来的。

DTD

文件类型定义(Document Type Definition),定义XML和HTML文件中元素、元素的属性、元素的排列方式、元素包含的内容等等。

在解析页面时,浏览器将使用这些规则检查页面的有效性并且采取响应的措施。

浏览器通过分析页面的DOCTYPE声明来了解要使用哪个DTD,由此知道要使用HTML的哪个版本。

DOCTYPE

文档类型声明。它是指示 web 浏览器关于页面使用哪个 HTML 版本。

声明必须是 HTML 文档的第一行,位于标签之前。 在HTML4.01中, 声明引用 DTD,因为 HTML 4.01 基于 SGML。DTD 规定了标记语言的规则,这样浏览器才能正确地呈现内容。 HTML5 不基于 SGML,所以不需要引用 DTD。

DOCTYPE作用:

浏览器根据Doctype的声明进行有效性验证。浏览器需要知道要使用什么DTD来正确的处理页面。 用于声明浏览器呈现模式

html5中的DOCTYPE:


浏览器模式

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

标准模式:浏览器根据规范呈现页面 混杂模式:页面以一种比较宽松的向后兼容的方式显示。
混杂模式通常模拟老式浏览器的行为以防止老站点无法工作。

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

如果XHTML、HTML 4.01文档包含形式完整的DOCTYPE,那么它一般以标准模式呈现。 包含过渡DTD和URI的DOCTYPE也导致页面以标准模式呈现,但是有过渡DTD而没有URI会导致页面以混杂模式呈现。 DOCTYPE不存在或形式不正确会导致HTML和XHTML文档以混杂模式呈现。

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

Tags:DO OC CT TY 
作者:网络 来源:gigi奋斗在前端和
  • 上一篇:win7安装Maven
  • 下一篇:解决sublime问题