关于html中的doctype声明

时间:2022-11-12 07:25:09

为什么会有本文及以后博文

​相信初学HTML的大家总会在代码的第一行看到类似的代码,但这行代码究竟有什么用呢?为什么我删掉它后代码仍然正常,它是不是没有用?

doctype是什么?​

​doctype是一个声明,是为了告诉标准通用标记语言解析器,它应该使用什么样的文档类型定义(DTD)来解析文档

为什么要使用doctype?

对于网页来说,每个网页的制作并不都是遵循标准来创作,即便你不能敲出标准的网页,你也希望浏览器可以按照标准正确的显示这些网页。假如我们严格遵循最新标准,以最新标准显示网页,理论上旧标准下的网页将无法显示,但事实上,作为浏览器,他们并不希望以旧标准设计的代码不能新版的浏览器中正确显示,因此现代浏览器包括两种不同呈现模式,目的是既支持遵循新标准的网页,也为旧标准网页找到出路。

而放在网页所有代码前面的doctype声明就是让浏览器进入正确呈现模式的关键。​浏览器自动切换到恰当的呈现模式,以便正确显示由doctype声明所指定的文档种类。如果没有它,会导致同一个样式在不同浏览器上看到的效果不同。因此doctype声明是我们在书写代码时​一项必要的元素,它影响着我们编码的验证,并严重影响浏览器显示代码的方式。

尽管大部分浏览器会有一个默认的DTD,但作为一个程序员,我们应该努力使自己的代码规范化,标准化。​

doctype的使用要求及注意

1.doctype声明不是HTML标签。

2.必须写在第一行,否则浏览器将无法识别。

3.虽然不​​严格区分大小写,但最好使用大写的doctype。

​4.区分doctype的种类。

​常用doctype的种类

HTML5

<!DOCTYPE html>

HTML 4.01 Strict​

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

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

HTML 4.01 Transitional

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

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

HTML 4.01 Frameset​

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

等同于 HTML 4.01 Transitional,但允许框架集内容。

XHTML 1.0 Strict

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

包含所有 HTML 元素和属性,但不包括展示性的和弃用的元素(比如font)。不允许框架集(Framesets)。必须以格式正确的 XML 来编写标记。

XHTML 1.0 Transitional

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

包含所有 HTML 元素和属性,包括展示性的和弃用的元素(比如 font)。不允许框架集(Framesets)。必须以格式正确的XML 来编写标记。

XHTML 1.0 Frameset

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

等同于 XHTML 1.0 Transitional,但允许框架集内容。

XHTML 1.1

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

等同于 XHTML 1.0 Strict,但允许添加模型(例如提供对东亚语系的 ruby 支持)。