htm中的doctype是document type (文档类型) 的缩写,声明严格意义上,它不是一个HTML标签,只是一个用于告诉浏览器当前HTMl版本的声明。下面,我们将会一起了解 的作用是什么?还有它的几种类型?
的定义与作用
是一个用于声明当前HTMl版本,用来告知web浏览器该文档使用是哪种 HTML 或者 XHTML 规范来解析页面,以便浏览器更加准确的理解页面内容,更加良好地展现内容效果!
的特点
标签没有结束标签;
声明被所有主流浏览器支持;
声明在HTML5中是可以不区分大小写的;
声明不是一个HTML标签,在HTML5中是可以不区分大小写的;
声明必须位于HTML文档中最前面,处于标签之前;
HTML4.01是基于SGML的,需要以声明引用一个DTD(文档类型定义),用来保证浏览器按照DTD指定的标记规则解析网页内容!
HTML5不基于SGML,所以不需要指定DTD。
DOCTYPE与浏览器模式
声明的前面是没有任何内容的,如果有其他内容(空格除外)就会使浏览器在 IE下开启怪异模式渲染网页;如果浏览器进入怪异模式,就会按自己的方式解析渲染页面。那么,在不同的浏览器下,显示的样式效果会不一致。
如果不写文档DOCTYPE声明,浏览器将无法获知HTML或XHTML文档的类型,也会进入怪异模式;还有在IE6以下版本永远进入怪异模式;
但是,只要我们对文档DOCTYPE做了正确的声明,浏览器就会进入标准模式;浏览器会按照W3C的标准来解析渲染页面,那么,在所有的浏览器下,显示的样式效果会保持一致。因此, 声明还是很有必要的。
DOCTYPE常见声明类型
HTML中常见声明类型共有8种,分别是html5有1种,HTML 4.01和XHTML 1.0都有3种,XHTML 1.1有1种,它们的写法如下:
1、HTML5 声明
HTML5规定了一种声明,它能向前向后兼容,代码也更加简洁,刘代码推荐使用。html>
2、HTML4.01 声明
HTML 4.01规定了三种不同的 声明,分别是:Strict、Transitional 和 Frameset。
①HTML 4.01 Strict
该 DTD 包含所有 HTML 元素和属性,但不包括展示性的和弃用的元素(比如 font)。不允许框架集(Framesets)。HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
②HTML 4.01 Transitional
该 DTD 包含所有 HTML 元素和属性,包括展示性的和弃用的元素(比如 font)。不允许框架集(Framesets)。HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
③HTML 4.01 Frameset
该 DTD 等同于 HTML 4.01 Transitional,但允许框架集内容。HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
3、XHTML1.0 声明
XHTML 1.0 也规定了三种不同的 声明,分别是:Strict、Transitional 和 Frameset。
①XHTML 1.0 Strict
该 DTD 包含所有 HTML 元素和属性,但不包括展示性的和弃用的元素(比如 font)。不允许框架集(Framesets)。必须以格式正确的 XML 来编写标记。html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
②XHTML 1.0 Transitional
该 DTD 包含所有 HTML 元素和属性,包括展示性的和弃用的元素(比如 font)。不允许框架集(Framesets)。必须以格式正确的 XML 来编写标记。html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
③XHTML 1.0 Frameset
该 DTD 等同于 XHTML 1.0 Transitional,但允许框架集内容。html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
4、XHTML 1.1声明
XHTML 1.1规定了一种声明, 等同于 XHTML 1.0 Strict,但允许添加模型。html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
HTML标签与Doctype文档类型声明
html版本经过了几次的升级,每次升级都会弃用一些不适用的旧标签,而增加某些新的html标签。因此,对于不同html版本的doctype文档类型声明,能合法使用的html标签也是有所不同。
比如:
和标签,能在html5中能使用,而在HTML 4.01和XHTML中就不能使用;
由此可见,声明的html版本,也决定了哪些html标签可以合法使用!
可参看所有HTML标签在不同DOCTYPE文档声明中可用性对照表,了解每一个HTML标签是否可以合法使用在哪一种声明中。