SGML是一种定义电子文档结构和描述其内容的国际标准语言,是所有电子文档标记语言的起源。它规定了在文档中嵌入描述标记的标准格式,指定了描述文档结构的标准方法,HTML格式就是使用固定标签集的以重SGML文档。 DTD(Document Type Definition 文档类型定义)是一组机器可读的规则,它定义XML或HTML元素及它们的属性和层次关系。浏览器根据你定义的DTD来解释你页面的表示,并展现出来。
<!DOCTYPE>声明的前面没有任何内容,如果有其他内容(除了空格),就会使浏览器在IE下开启怪异模式渲染网页。如果浏览器进入怪异模式,就会按自己的方式解析渲染页面。那么,在不同的浏览器下,显示的样式效果会不一致。如果不写文档DOCTYPE声明,浏览器将无法获知HTML或XHTML文档的类型,也会进入怪异模式;还有在IE6以下版本永远进入怪异模式。只要我们对文档DOCTYPE做了正确的声明,浏览器就会进入标准模式;浏览器会按照W3C的标准来解析渲染页面,那么,在所有的浏览器下,显示的样式效果会保持一致。
1、HTML5 <!DOCTYPE>声明—> eg:<!doctype html> 2、HTML4.01和XHTML1.0 HTML Strict DTD 如果需要干净的标记,免于表现层的混乱,可以使用此类型。与层叠样式表(CSS)配合使用: DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01//EN” " http://www.w3.org/TR/html4/strict.dtd" HTML Transitional DTD Transitional DTD 可包含 W3C 所期望移入样式表的呈现属性和元素。如果读者使用了不支持层叠样式表(CSS)的浏览器以至于您不得不使用 HTML 的呈现特性时,请使用此类型: DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN” " http://www.w3.org/TR/html4/loose.dtd" Frameset DTD Frameset DTD 应当被用于带有框架的文档。除 frameset 元素取代了 body 元素之外,Frameset DTD 等同于 Transitional DTD: DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01 Frameset//EN” " http://www.w3.org/TR/html4/frameset.dtd" 3、XHTML1.1规定了一种声明,等同于XHTML1.0的Strict,但允许添加框架集。
HTML5 不基于 SGML,因此不需要对 DTD 进行引用,但是需要 DOCTYPE 来规范浏览器的行为(让浏览器按照它们应该的方式来运 行)。而 HTML4.01 基于 SGML ,所以需要对 DTD 进行引用,才能告知浏览器文档所使用的文档类型。