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