Web 世界中存在许多不一样的文档。只有了解文档的类型,浏览器才能正确地显示文档。html
HTML 也有多个不一样的版本,只有彻底明白页面中使用的确切 HTML 版本,浏览器才能彻底正确地显示出 HTML 页面。这就是 <!DOCTYPE> 的用处。canvas
<!DOCTYPE> 不是 HTML 标签。它为浏览器提供一项信息(声明),即 HTML 是用什么版本编写的。浏览器
在 HTML 4.01 中,<!DOCTYPE> 声明引用 DTD,由于 HTML 4.01 基于 SGML(标准通用标记语言)。DTD 规定了标记语言的规则,这样浏览器才能正确地呈现内容。安全
HTML5 不基于 SGML,因此不须要引用 DTD。ruby
在 HTML 4.01 中有三种 <!DOCTYPE> 声明。在 HTML5 中只有一种。框架
<!DOCTYPE html>
HTML 4.01 Strict:该 DTD 包含全部 HTML 元素和属性,但不包括展现性的和弃用的元素(好比 font)。不容许框架集(Framesets)。less
<!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,但容许框架集内容。async
<!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 来编写标记。ide
<!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">
标签 | 描述 |
---|---|
格式 | |
<bdi> |
容许您设置一段文本,使其脱离其父元素的文本方向设置。 |
<mark> |
定义带有记号的文本。 |
<meter> |
定义度量衡。仅用于已知最大和最小值的度量。 |
<progress> |
定义运行中的任务进度(进程)。 |
<rp> |
定义不支持 ruby 元素的浏览器所显示的内容。 |
<rt> |
定义字符(中文注音或字符)的解释或发音。 |
<ruby> |
定义 ruby 注释(中文注音或字符)。 |
<time> |
定义一个日期/时间 |
<wbr> |
规定在文本中的何处适合添加换行符。 |
表单 | |
<datalist> |
规定了 input 元素可能的选项列表。 |
<keygen> |
规定用于表单的密钥对生成器字段。 |
<output> |
定义一个计算的结果 |
图像 | |
<canvas> |
经过脚本(一般是 JavaScript)来绘制图形(好比图表和其余图像)。 |
<figcaption> |
定义figure元素的标题 |
<figure> |
figure 标签用于对元素进行组合。 |
Audio/Video | |
<audio> |
定义声音,好比音乐或其余音频流。 |
<source> |
定义media元素 (<video> 和 <audio>)的媒体资源。media |
<track> |
为媒体(<video> 和 <audio>)元素定义外部文本轨道。 |
<video> |
定义一个音频或者视频 |
连接 | |
<nav> |
定义导航连接 |
列表 | |
<command> |
定义用户可能调用的命令(好比单选按钮、复选框或按钮)。 |
样式/节 | |
<header> |
定义一个文档头部部分 |
<footer> |
定义一个文档底部 |
<section> |
定义了文档的某个区域 |
<article> |
定义一个文章内容 |
<aside> |
定义其所处内容以外的内容。 |
<details> |
定义了用户可见的或者隐藏的需求的补充细节。 |
<dialog> |
定义一个对话框或者窗口 |
<summary> |
定义一个可见的标题。 当用户点击标题时会显示出详细信息。 |
程序 | |
<embed> |
定义了一个容器,用来嵌入外部应用或者互动程序(插件)。 |
<script defer src=".....js" onload="alert('a')"></script> <script async src=".....js" onload="alert('b')"></script>
<link rel="icon" href="url..." type="图片名称" sizes="16*16">
属性 | 描述 |
---|---|
contenteditable |
规定是否可编辑元素的内容。 |
contextmenu |
指定一个元素的上下文菜单。当用户右击该元素,出现上下文菜单 |
data-* |
用于存储页面的自定义数据 |
draggable |
指定某个元素是否能够拖动 |
dropzone |
指定是否将数据复制,移动,或连接,或删除 |
hidden |
hidden 属性规定对元素进行隐藏。 |
spellcheck |
检测元素是否拼写错误 |
translate |
指定是否一个元素的值在页面载入时是否须要翻译 |