HTML <!DOCTYPE> 声明详解

什么是<!DOCTYPE>?

<!DOCTYPE> 声明不是一个 HTML 标签;它是用来告知 Web 浏览器页面使用了哪种 HTML 版本。

<!DOCTYPE> 声明位于文档中的最前面的位置,处于 <html> 标签之前,<!DOCTYPE>声明告知浏览器的解析器用什么文档标准解析这个文档(标准模式)。若声明错误或未声明会导致文档以兼容模式/混杂模式呈现。

<!DOCTYPE> 标签没有结束标签。<!DOCTYPE> 声明不区分大小写。总是先给 HTML 文档添加 <!DOCTYPE> 声明,确保浏览器能够预先知道文档类型。

标准模式与兼容模式

若文档为标准模式,则该文档的排版与JS运作模式都是以该浏览器支持的最高标准运行;

兼容模式中,页面以宽松的向后兼容的方式显示,模拟老式浏览器的行为以防止站点无法工作。

html4.01与html5中的<!DOCTYPE>

在html4.01中,<!DOCTYPE>声明需要引用DTD(文档类型声明),因为它是基于SGML(Standard Generalized Markup Language 标准通用标记语言),DTD 指定了标记语言的规则,确保了浏览器能够正确的渲染内容。html5不基于SGML因此不需要引用DTD。

HTML 5 只有一种<!DOCTYPE> 声明:

HTML5
 <!DOCTYPE html>

HTML 4.01 规定了三种不同的 <!DOCTYPE> 声明,分别是:Strict、Transitional 和 Frameset

HTML 4.01 Strict

不允许使用表现性、废弃元素(如font)以及框架集(如frameset)。

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

允许使用表现性、废弃元素(如font),不允许使用框架集(如frameset)。

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

允许表现性元素,废气元素以及框架集。

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

其他常见的DOCTYPE 声明

XHTML1.0 Strict

不允许使用表现性、废弃元素(如font)以及框架集(如frameset),文档必须是结构良好的XML文档。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
XHTML1.0 Transitional

允许使用表现性、废弃元素(如font),不允许使用框架集(如frameset),文档必须是结构良好的XML文档。

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

允许表现性元素,废气元素以及框架集,文档必须是结构良好的XML文档。

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

不允许使用表现性、废弃元素(如font)以及框架集(如frameset),文档必须是结构良好的XML文档,但是允许添加模块(例如为东亚语言提供 ruby 支持)。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

HTML 元素和有效 DOCTYPES

以下链接中的表格列出了所有的 HTML5/HTML 4.01/XHTML 元素,以及它们会出现在什么文档类型 (!DOCTYPE) 中,效果如图。

链接:http://www.runoob.com/tags/html-elementsdoctypes.html

 

文章参考资料:http://www.runoob.com/tags/tag-doctype.html

转载请注明地址:丝瓜 » HTML <!DOCTYPE> 声明详解

 

posted on 2017-05-17 17:00  丝瓜~  阅读(5504)  评论(0编辑  收藏  举报