为了更好地处理如今的互联网应用,HTML5 添加了很多新元素及功能,比如:图形的绘制,多媒体内容,更好的页面结构,地理定位,包括网页应用程序缓存,本地存储,Web Worker(网络工作者)等。
(1)、新的结构元素
HTML5 提供了新的元素来创建更好的页面结构。
<article> 元素定义页面独立的内容区域。
<main> 元素定义文档的主要内容。
<header> 元素定义文档的头部区域。
<nav> 元素定义导航链接的部分。
<section> 元素定义文档中一个区域。
<aside> 元素定义页面的侧边栏内容。
<hgroup> 元素被用来对标题元素进行分组。
<figure> 元素定义一组媒体内容,以及它们的标题。
<figcaption> 元素定义 <figure> 元素的标题。
<footer> 元素定义定义文档或者文档的一部分区域的页脚。
<dialog> 元素定义对话框,比如提示框。
(2)、新的多媒体元素
HTML5 的多媒体元素在不使用插件的情况下即可操作媒体文件,极大地提升了用户体验。
<canvas> 元素定义图形,比如图表和其他图像。该标签基于 JavaScript 的绘图 API。
<audio> 元素定义音频。
<video> 元素定义视频。
<source> 元素定义多媒体资源 <video> 和 <audio>。
<track> 元素为 <video> 和 <audio> 元素之类的媒体规定外部文本轨道。
<embed> 元素定义嵌入的内容(外部交互内容),比如插件。
(2)、新的 Web 应用元素
<menu> 元素定义命令列表或菜单,目前主流浏览器并不支持 <menu> 标签。
<menuitem> 元素定义 menu 命令列表,定义用户可以从弹出菜单调用的命令/菜单项目。目前主流浏览器都不支持该标签。
<command> 元素定义 menu 命令按钮,定义用户可能调用的命令(比如单选按钮、复选框或按钮)。目前主流浏览器都不支持该标签。
<meter> 元素定义度量衡(预定义范围内的度量),仅用于已知最大和最小值的度量。已知范围或分数值内的标量测量,也被称为 gauge(尺度)。
<progress> 元素定义任何类型的任务的进度,即运行中的进度(进程)。状态标签,用于进度条,比如任务过程的安装、加载。
<details> 元素定义一个元素的详细内容,描述文档或文档某个部分的细节,规定用户可见的或者隐藏的需求的补充细节(对用户是不可见的),用来供用户开启关闭的交互式控件。
<summary> 元素为 <details> 元素定义一个可见的标题,当用户点击标题时会显示出详细信息。
(3)、新表单元素
<datalist> 元素定义选项列表,为 input 元素定义一个下拉列表,配合 option 元素来定义 input 可能的值。--
<keygen> 元素用于表单的密钥对生成器字段。--
<output> 元素定义不同类型的输出,比如脚本的输出,配合 output 事件。--
(4)、其他语义元素
<time> 元素定义日期或时间。
<mark> 元素定义带有记号的文本。
<wbr> 元素规定在文本中的何处适合添加换行符。
<bdi> 元素允许设置一段文本,使其脱离其父元素的文本方向设置。
<ruby> 元素定义 ruby 注释,ruby 注释是中文注音或字符,在东亚使用,显示的是东亚字符的发音。
<rt> 元素定义 ruby 注释的解释或发音。
<rp> 元素在 ruby 注释中使用,定义不支持 ruby 元素的浏览器所显示的内容。
以下是 HTML5 删除的元素:
纯表现元素:
<basefont>、<font>、<big>、<center>、<strike>、<s>、<u>、<tt>
对可用性产生负面影响的(框架)元素:
<frame>、<frameset>、<noframes>
产生混淆的元素:
<acronym>、<applet>、<dir>
建议使用语义正确的元素代替他们,并使用 CSS 来确保渲染后的效果。
以下是在 HTML5 中被重新定义以及与 HTML4.01 存在差异的元素:
<menu> 元素在 HTML4.01 已被废弃,HTML5 重新定义了该元素。该元素定义用户界面的菜单,配合 commond 或者 menuitem 使用。