问:
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有相对宽松的语法,已经尽可能大的实现了向后兼容。