首页 » 编程语言 » html » 正文

html中doctype的作用及几种类型详解

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>声明,它能向前向后兼容,代码也更加简洁,刘代码推荐使用。

 <!doctype html>

2、HTML4.01 <!DOCTYPE>声明

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

HTML 4.01 Strict

该 DTD 包含所有 HTML 元素和属性,但不包括展示性的和弃用的元素(比如 font)。不允许框架集(Framesets)。

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

HTML 4.01 Transitional
该 DTD 包含所有 HTML 元素和属性,包括展示性的和弃用的元素(比如 font)。不允许框架集(Framesets)。

<!DOCTYPE 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,但允许框架集内容。

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

3、XHTML1.0 <!DOCTYPE>声明

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

XHTML 1.0 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">

XHTML 1.0 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">

XHTML 1.0 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">

4、XHTML 1.1<!DOCTYPE>声明

XHTML 1.1规定了一种声明, 等同于 XHTML 1.0 Strict,但允许添加模型。

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

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>声明中。




欢迎您发表评论或留言