定义和用法

<!DOCTYPE> 声明必须是 HTML 文档的第一行,位于 <html> 标签之前。

<!DOCTYPE> 声明不是 HTML 标签;它是指示 web 浏览器关于页面使用哪个 HTML 版本进行编写的指令。

在 HTML 4.01 中,<!DOCTYPE> 声明引用 DTD,因为 HTML 4.01 基于 SGML。DTD 规定了标记语言的规则,这样浏览器才能正确地呈现内容。

HTML5 不基于 SGML,所以不需要引用 DTD。

提示:请始终向 HTML 文档添加 <!DOCTYPE> 声明,这样浏览器才能获知文档类型。

HTML 4.01 与 HTML5 之间的差异

在 HTML 4.01 中有三种 <!DOCTYPE> 声明。在 HTML5 中只有一种:

<!DOCTYPE html>

HTML 元素和文档类型(Doctype)

请参阅这个 HTML 元素表,其中列出了每种元素会出现在哪个文档类型中

提示和注释

注释:<!DOCTYPE> 声明没有结束标签。

提示:<!DOCTYPE> 声明对大小写不敏感。

提示:请使用 W3C 的验证器来检查您是否编写了有效的 HTML / XHTML 文档!

常用的 DOCTYPE 声明

HTML 5

<!DOCTYPE html>

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

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

XHTML 1.1

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

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

最新文章

  1. excel中的TEXT函数
  2. 生成秘钥文件 sn.exe(Strong Name Tool)
  3. Java数据结构——优先级队列
  4. CentOS安装wordpress权限问题
  5. MFC 单文档 根据数据 绘图
  6. Ubuntu nginx: [emerg] bind() to 0.0.0.0:80 failed (13: Permission denied)
  7. Centos下安装Scrapy
  8. Java总结第一次//有些图片未显示,文章包含基础java语言及各种语句
  9. Inno Setup中做补丁通过注册表获取原程序安装目录
  10. Vmware下Ubuntu无法上网的问题
  11. java转义字符
  12. iOS 开发中的单例
  13. 【转】Java中super和this的几种用法与区别
  14. LeetCode 14.Longest Common Prefix(C++)
  15. levmar : Levenberg-Marquardt库编译
  16. Windows Server 2008安装IIS 7与配置
  17. element-ui &lt;el-radio&gt; 回显格式为中文 传值格式为数值
  18. iTrash for Mac(卸载工具)破解版含注册机
  19. loadrunner获取当前日期、明日日期、昨日日期
  20. 疫情控制 [NOIP2012]

热门文章

  1. glPixelStorei(GL_UNPACK_ALIGNMENT, 1)用法
  2. 基于UDT connect连接通信以及文件传输--客户端
  3. 10.OpenStack块存储服务
  4. Optional int parameter &#39;rows&#39; is not present but cannot be translated into a null value due to being declared as a primitive type.
  5. Python编程学习笔记 随时更新
  6. codeforces-526B
  7. HDU 6113 度度熊的01世界【DFS/Flood Fill】
  8. MySql笔记之修改MySQL提示符
  9. WC 2018/CTSC 2018/APIO 2018 游记
  10. POJ 3470 Walls(线段树+扫描线)