1、什么是<!DOCTYPE>?
这个标签用来定义文档类型,即告诉标准通用标记语言(Standard Generalized Markup language,即SGML)解析器,它应该使用什么样的文档类型定义(DTD)来解析文档。
2、DTD是用来做什么的?
文档类型定义(DTD)约定文档格式,规定元素,元素属性,元素关系,标签,实体等。浏览器就根据你定义的DTD来解释你页面的标识,并展现出来。要建立符合标准的网页,DOCTYPE声明是必不可少的关键组成部分;除非你的HTML或XHTML确定了一个正确的DOCTYPE,否则你的标识和CSS都不会生效。
在HTML4.01和XHTML1.0中,DTD都规定了3种文档类型:严格、过渡以及框架集。
HTML4.01文档类型定义:
i) 过渡的(Transitional):可包含万维网联盟所期望移入样式表的呈现属性和元素。如果您的读者使用了不支持层叠样式表的浏览器以至于您不得不使用超文本标记语言的呈现特性时,请使用此类型。不允许框架集(Framesets)。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//en" "http://www.w3.org/TR/html4/loose.dtd">
ii) 严格的(Strict):该 DTD 包含所有 HTML 元素和属性,但不包括展示性的和弃用的元素(比如 font、br)。不允许框架集(Framesets)。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//en" "http://www.w3. org/TR/html4/strict.dtd">
iii) 框架的(Frameset):该 DTD 等同于 HTML 4.01 Transitional,但允许框架集内容。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//en" "http://www.w3. org/TR/html4/frameset.dtd">
XHTML1.0文档类型定义:
i) 过渡的(Transitional):该 DTD 包含所有 HTML 元素和属性,包括展示性的和弃用的元素(比如 font)。不允许框架集(Framesets)。必须以格式正确的 XML 来编写标记。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
ii) 严格的(Strict):该 DTD 包含所有 HTML 元素和属性,但不包括展示性的和弃用的元素(比如 font)。不允许框架集(Framesets)。必须以格式正确的 XML 来编写标记。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
iii) 框架的(Frameset):该 DTD 等同于 XHTML 1.0 Transitional,但允许框架集内容。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
iv) XHTML 1.1:该 DTD 等同于 XHTML 1.0 Strict,但允许添加模型(例如提供对东亚语系的 ruby 支持)。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
HTML5文档类型定义:HTML5 不基于 SGML,所以不需要引用 DTD。
<!DOCTYPE html>
提示:请始终向 HTML 文档添加 <!DOCTYPE> 声明,这样浏览器才能获知文档类型。