Skip to content

HTML5

什么是HTML5

HTML5优势

  1. 针对 JavaScript,新增了很多可操作的接口。
  2. 新增了一些语义化标签、全局属性。
  3. 新增了多媒体标签,可以很好的替代 flash
  4. 更加侧重语义化,对于 SEO 更友好。
  5. 可移植性好,可以大量应用在移动设备上。

HTML5兼容性

  • 支持:ChromeSafariOperaFirefox 等主流浏览器。

IE 浏览器必须是 9 及以上版本才支持 HTML5,且 IE9 仅支持部分 HTML5 新特性。

新增语义化标签

新增布局标签

标签名语义单/双标签
header整个页面,或部分区域的头部
footer整个页面,或部分区域的底部
nav导航
article文章、帖子、杂志、新闻、博客、评论等。
section页面的中某段文字,或文章中的某段文字(里面文字通常里面会包含标题)。
aside侧边栏
main文档的主要内容(WHATWG 没有语义,IE 不支持),几乎不用。
hgroup包裹连续的标题,如文章主标题、副标题的组合(W3C 将其删除)

关于 article 和 section:

  1. article 里面可以有多个 section。
  2. section 强调的是层分段或分块,如果你想将一块内容分成几段的时候,可使用 section 元素。
  3. article 比 section 更强调独立性,一块内容如果比较独立、比较完整,应该使用 article 元素。

新增状态标签

meter 标签

  • 语义:定义已知范围内的标量测量。也被称为 gauge(尺度),双标签,例如:电量、磁盘用量等。
  • 常用属性如下:
属性描述
high数值规定高值
low数值规定低值
max数值规定最大值
min数值规定最小值
optimum数值规定最优值
value数值规定当前值

progress 标签

  • 语义:显示某个任务完成的进度的指示器,一般用于表示进度条,双标签,例如:工作完成进度等。

  • 常用属性如下:

属性描述
max数值规定目标值。
value数值规定当前值。

新增列表标签

标签名语义单/双标签
datalist用于搜索框的关键字提示
details用于展示问题和答案,或对专有名词进行解释
summary写在 details 的里面,用于指定问题或专有名词
html
<input type="text" list="mydata">
<datalist id="mydata">
  <option value="周杰伦">周杰伦</option>
  <option value="周杰伦">周杰伦</option>
  <option value="温兆伦">温兆伦</option>
  <option value="马冬梅">马冬梅</option>
</datalist>

<details>
  <summary>如何走上人生巅峰?</summary>
  <p>一步一步走呗</p>
</details>

新增文本标签

文本注音

标签名语义单/双标签
ruby包裹需要注音的文字
rt写注音,rt 标签写在 ruby 的里面
html
<ruby>
  <span>魑魅魍魉</span>
  <rt>chī mèi wǎng liǎng</rt>
</ruby>

文本标记

标签名语义单/双标签
mark标记

注意: W3C 建议 mark 用于标记搜索结果中的关键字。

新增表单功能

表单控件新增属性

属性名功能
placeholder提示文字(注意:不是默认值,value 是默认值),适用于文字输入类的表单控件。
required表示该输入项必填,适用于除按钮外其他表单控件。
autofocus自动获取焦点,适用于所有表单控件。
autocomplete自动完成,可以设置为 on 或 off,适用于文字输入类的表单控件。注意:密码输入框、多行输入框不可用。
pattern填写正则表达式,适用于文本输入类表单控件。注意:多行输入不可用,且空的输入框不会验证,往往与 required 配合。

input 新增属性值

属性名功能
email邮箱类型的输入框,表单提交时会验证格式,输入为空则不验证格式。
urlurl类型的输入框,表单提交时会验证格式,输入为空则不验证格式。
number数字类型的输入框,表单提交时会验证格式,输入为空则不验证格式。
search搜索类型的输入框,表单提交时不会验证格式。
tel电话类型的输入框,表单提交时不会验证格式,在移动端使用时,会唤起数字键盘。
range范围选择框,默认值为 50,表单提交时不会验证格式。
color颜色选择框,默认值为黑色,表单提交时不会验证格式。
date日期选择框,默认值为空,表单提交时不会验证格式。
month月份选择框,默认值为空,表单提交时不会验证格式。
week周选择框,默认值为空,表单提交时不会验证格式。
time时间选择框,默认值为空,表单提交时不会验证格式。
datetime-local日期+时间选择框,默认值为空,表单提交时不会验证格式。

form 标签新增属性

属性名功能
novalidate如果给 form 标签设置了该属性,表单提交的时候不再进行验证。

新增多媒体标签

视频标签

<video> 标签用来定义视频,它是双标签。

属性

属性描述
srcURL 地址视频地址
width像素值设置视频播放器的宽度
height像素值设置视频播放器的高度
controls-向用户显示视频控件(比如播放/暂停按钮)
muted-视频静音
autoplay-视频自动播放
loop-循环播放
posterURL 地址视频封面
preloadauto / metadata / none视频预加载,如果使用 autoplay,则忽略该属性
- none:不预加载视频。
- metadata:仅预先获取视频的元数据(例如长度)。
- auto:可以下载整个视频文件,即使用户不希望使用它。

音频标签

<audio> 标签用来定义音频,它是双标签。

属性描述
srcURL 地址音频地址
controls-向用户显示音频控件(比如播放/暂停按钮)
autoplay-音频自动播放
muted-音频静音
loop-循环播放
preloadauto / metadata / none音频预加载,如果使用 autoplay,则忽略该属性
  • none:不预加载音频。
  • metadata:仅预先获取音频的元数据(例如长度)。
  • auto:可以下载整个音频文件,即使用户不希望使用它。

新增全局属性(了解)

属性名功能
contenteditable表示元素是否可被用户编辑,可选值如下:
true:可编辑
false:不可编辑
draggable表示元素可以被拖动,可选值如下:
true:可拖动
false:不可拖动
hidden隐藏元素
spellcheck规定是否对元素进行拼写和语法检查,可选值如下:
true:检查
false:不检查
contextmenu规定元素的上下文菜单,在用户鼠标右键点击元素时显示。
data-*用于存储页面的私有定制数据。

HTML5兼容性处理

  • 添加元信息,让浏览器处于最优渲染模式。
html
<!-- 设置IE总是使用最新的文档模式进行渲染 -->
<meta http-equiv="X-UA-Compatible" content="IE=Edge">

<!-- 优先使用 webkit(Chromium)内核进行渲染,针对360等壳浏览器 -->
<meta name="renderer" content="webkit">
  • 使用 html5shiv 让低版本浏览器认识 H5 的语义化标签。
html
<!--[if lt ie 9]>
<script src="../sources/js/html5shiv.js"></script>
<![endif]-->
  • 扩展
lt小于
lte小于等于
gt大于
gte大于等于
!逻辑非
  • 示例:
html
<!--[if IE 8]>仅IE8可见<![endif]-->
<!--[if gt IE 8]>仅IE8以上可见<![endif]-->
<!--[if lt IE 8]>仅IE8以下可见<![endif]-->
<!--[if gte IE 8]>IE8及以上可见<![endif]-->
<!--[if lte IE 8]>IE8及以下可见<![endif]-->
<!--[if !IE 8]>非IE8的IE可见<![endif]-->

贡献者

页面历史