HTML5

文章の目录

HTML5 简介

什么是 HTML5?

HTML5 的新的文档类型声明

HTML5 新特性

新语义/结构元素

section 元素

article 元素

header 元素

footer 元素

nav 元素

aside 元素

新输入类型/表单控件

输入类型

输入类型:number

输入类型:date

输入类型:month

输入类型:week

输入类型:time

输入类型:datetime

输入类型:datetime-local

输入类型:color

输入类型:range

输入类型:email

输入类型:search

输入类型:tel

输入类型:url

Input 属性

min 和 max 属性

step 属性

placeholder 属性

form 属性

required 属性

autofocus 属性

multiple 属性

音频audio、视频video

属性

音频/视频格式兼容性解决方案

JavaScript API

新 API

HTML5 Web 存储

什么是 HTML5 Web 存储?

localStorage 和 sessionStorage

Web 存储 vs Cookie


正文

HTML5 简介

什么是 HTML5?

  • HTML5 是最新的 HTML 标准。
  • HTML5 是专门为承载丰富的 web 内容而设计的,并且无需额外插件。
  • HTML5 拥有新的语义、图形以及多媒体元素。
  • HTML5 提供的新元素和新的 API 简化了 web 应用程序的搭建。
  • HTML5 是跨平台的,被设计为在不同类型的硬件(PC、平板、手机、电视机等等)之上运行。

HTML5 的新的文档类型声明

HTML5 的新的文档类型(DOCTYPE)声明非常简单:

<!DOCTYPE html>

<meta charset="UTF-8">

注:

  • HTML5 中默认的字符编码是 UTF-8。

(如需了解 HTML 和 HTML5 的文件结构,请阅读笔者另一篇文章:HTML入门与进阶 中 HTML 文件结构。)

HTML5 新特性

HTML5 的一些最有趣的新特性:

  • 新的语义元素。比如 <header>,<footer>,<article>,<section>。
  • 新的表单控件。比如数字、日期、时间、日历和滑块。
  • 强大的图像支持(借由 <canvas> 和 <svg> )。
  • 强大的多媒体支持(借由 <video> 和 <audio> )。
  • 强大的新 API,比如用本地存储取代 cookie。

新语义/结构元素

section 元素

  • <section> 元素定义文档中的节。
  • 根据 W3C 的 HTML 文献:节(section)是具有主题的内容组,通常具有标题。
  • 可以将网站首页划分为简介、内容、联系信息等节。

article 元素

  • <article> 元素规定独立的自包含内容。
  • 文档有其自身的意义,并且可以独立于网站其他内容进行阅读。
  • <article> 元素应用场景:
    • 论坛
    • 博客
    • 新闻

header 元素

  • <header> 元素为文档或节规定页眉。
  • <header> 元素应该被用作介绍性内容的容器。
  • 一个文档中可以有多个 <header> 元素。

footer 元素

  • <footer> 元素为文档或节规定页脚。
  • <footer> 元素应该提供有关其包含元素的信息。
  • 页脚通常包含文档的作者、版权信息、使用条款链接、联系信息等等。
  • 可以在一个文档中使用多个 <footer> 元素。

nav 元素

  • <nav> 元素定义导航链接集合。
  • <nav> 元素旨在定义大型的导航链接块。不过,并非文档中所有的链接都应该位于 <nav> 元素中。

aside 元素

  • <aside> 元素定义页面主内容之外的某些内容(比如侧栏)。
  • aside 内容应该与周围内容相关。

新输入类型/表单控件

HTML5 增加了多个新的输入类型:

  • color
  • date
  • datetime
  • datetime-local
  • email
  • month
  • number
  • range
  • search
  • tel
  • time
  • url
  • week

注:

  • 老式 web 浏览器不支持的输入类型,会被视为输入类型 text。

输入类型

输入类型:number

<input type="number"> 用于应该包含数字值的输入字段。

可以设定对所接收数字的限定。

使用以下属性来规定对数字类型的限定:

  • disabled —— 规定输入字段应该被禁用
  • readonly —— 规定输入字段为只读(无法修改)
  • value —— 规定输入字段的默认值
  • maxlength —— 规定输入字段的最大字符数
  • 以下为 HTML5 新增内容
  • max —— 规定输入字段的最大值
  • min —— 规定输入字段的最小值
  • step —— 规定输入字段的合法数字间隔
  • required —— 规定输入字段是必需的(必需填写)

IE9 及早期版本不支持 type="number"。

输入类型:date

<input type="data"> 用于应该包含日期的输入字段(包括年、月、日)。

根据浏览器支持,日期选择器会出现在输入字段中。

添加限制:

  • max="2000-01-02" —— 仅可输入 2000-01-02 之前的日期,包括 2000-01-02
  • min="2000-01-02" —— 仅可输入 2000-01-02 之后的日期,包括 2000-01-02

FireFox 或者 Internet Explorer 11 以及更早版本不支持 type="data"。

输入类型:month

<input type="month"> 允许用户选择月份和年份(无时区)。

根据浏览器支持,日期选择器会出现在输入字段中。

FireFox 或者 Internet Explorer 11 以及更早版本不支持 type="month"。

输入类型:week

<input type="week"> 允许用户选择周和年(无时区)。

根据浏览器支持,日期选择器会出现在输入字段中。

Internet Explorer 不支持 type="week"。

输入类型:time

<input type="time"> 允许用户选择时间(无时区)。

根据浏览器支持,时间选择器会出现在输入字段中。

FireFox 或者 Internet Explorer 11 以及更早版本不支持 type="time"。

输入类型:datetime

<input type="datetime"> 允许用户选择日期和时间(有时区、UTC 时间即格林威治时间)。

根据浏览器支持,日期选择器会出现在输入字段中。

Chrome、Firefox 或 Internet Explorer 不支持 type="datetime"。

输入类型:datetime-local

<input type="datetime-local"> 允许用户选择日期和时间(无时区,本地时间即电脑设置的时间)。

根据浏览器支持,日期选择器会出现在输入字段中。

Firefox 或 Internet Explorer 不支持 type="datetime-local"。

输入类型:color

<input type="color"> 用于应该包含颜色的输入字段。

根据浏览器支持,颜色选择器会出现在输入字段中。

Internet Explorer 不支持 type=“color”。

输入类型:range

<input type="range"> 用于应该包含一定范围内的值的输入字段。

根据浏览器支持,输入字段能够显示为滑块控件

可以使用如下属性来规定限制:min、max、step、value。

IE9 及早期版本不支持 type="range"。

输入类型:email

<input type="email"> 用于应该包含电子邮件地址的输入字段。

根据浏览器支持,能够在被提交时自动对电子邮件地址进行验证(提交时会检测是否包含 @ 符,并且 @ 符前后是否有字符)。

某些智能手机会识别 email 类型,并在键盘增加 ".com" 以匹配电子邮件输入。

IE9 及早期版本不支持 type="email"。

输入类型:search

<input type="search"> 用于搜索字段(搜索字段的表现类似常规文本字段)。

输入类型:tel

<input type="tel"> 用于应该包含电话号码的输入字段。

目前只有 Safari 8 支持 tel 类型。

输入类型:url

<input type="url"> 用于应该包含URL地址的输入字段。

根据浏览器支持,在提交时能够自动验证 url 字段(输入的网址应该是 http:// 或 https:// 开头,并且后面必须有字符)。

某些智能手机会识别 url 类型,并向键盘添加 ".com" 以匹配 url 输入。

IE9 及其更早版本不支持 type="url"。

Input 属性

min 和 max 属性

min 和 max 属性规定 <input> 元素的最小值和最大值。

min 和 max 属性适用于以下输入类型:number、range、date、datetime、datetime-local、month、time 以及 week。

step 属性

step 属性规定 <input> 元素的合法数字间隔。

例:如果 step="3",则合法数字应该是 -3、0、3、6 等等。

step 属性可与 max 以及 min 属性一同使用,来创建合法值的范围。

step 属性适用于以下输入类型:number、range、date、datetime、datetime-local、month、time 以及 week。

placeholder 属性

placeholder 属性规定用以描述输入字段预期值的提示(样本值或有关格式的简短描述)。

该提示会在用户输入值之前显示在输入字段中。

placeholder 属性适用于以下输入类型:text、search、url、tel、email 以及 password。

form 属性

form 属性规定 <input> 元素所属的一个或多个表单。

如需引用一个以上的表单,请使用空格分隔的表单 id 列表。

required 属性

required 属性是布尔属性。

如果设置,则规定在提交表单之前必须填写输入字段。

required 属性适用于以下输入类型:text、search、url、tel、email、password、number、checkbox、radio、file 以及 date pickers(日期选择器,包括date、month、week、time、datetime、datetime-local)。

autofocus 属性

autofocus 属性是布尔属性。

如果设置,则规定当页面加载时 <inpuut> 元素应该自动获得焦点。

Internet Explorer 9 以及更早的版本不支持 input 标签的 autofocus 属性。

multiple 属性

multiple 属性是布尔属性。

如果设置,则规定允许用户在 <input> 元素中输入一个以上的值。

multiple 属性适用于以下输入类型:file 和 email。

音频audio、视频video

  • <audio> 播放音频 —— 支持 .mp3、.wav、.ogg 格式音频文件
  • <video> 播放视频 —— 支持 .mp4、.webm、.ogg 格式视频文件

属性

实例:

<video src="1.ogg" controls="controls">
您的浏览器不支持Video标签
</video>

音频/视频格式兼容性解决方案

  • audio/video 组合 source 元素。
  • 可以链接不同的音视频文件,也可以为同一个媒体数据指定多个播放格式。
  • 浏览器将使用第一个可识别的格式。

实例:

<video width="320px" height="240px" controls="controls">
    <source src="movie.ogg" type="video/ogg">
    <source src="movie.mp4" type="video/mp4">
    您的浏览器不支持video
</video>

JavaScript API

常用控制函数:

只读的媒体属性:

可脚本控制的属性值:

新 API

HTML5 Web 存储

HTML5 Web 存储,一个比 cookie 更好的本地存储方式。

什么是 HTML5 Web 存储?

  • 使用 HTML5 可以在本地存储用户的浏览数据。
  • 在 HTML5 之前,本地存储使用的是 cookie。
  • Web 存储更加安全,并且可以在不影响网站性能的前提下将大量数据存储于本地。
  • 与 cookie 不同,存储限制要大得多(5MB左右),并且信息不会被传输到服务器。
  • 数据以 键/值 对的形式存在,web 网页的数据只允许该网页访问使用。

localStorage 和 sessionStorage

客户端存储数据的两个对象为:

  • localStorage —— 用于长久保存整个网站的数据,保存的数据没有过期时间,直到手动去除。
  • sessionStorage —— 用于临时保存同一窗口(或标签页)的数据,在关闭窗口或标签页之后将会删除这些数据。

在使用 web 存储前,应检查浏览器是否支持 localStorage 和 sessionStorage:

if(typeof(Storage)!=="undefined"){
    // 针对 localstorage/sessionStorage 的代码
}else{
    // 抱歉!不支持 Web Storage ...
}

localStorage 对象

localStorage 对象存储的数据没有时间限制。第二天、第二周或下一年之后,数据依然可用。

  • localStorage.setItem(key,value) —— 存储数据
  • localStorage.getItem(key) —— 读取数据
  • localStorage.removeItem(key) —— 删除单个数据
  • localStorage.clear() —— 删除所有数据
  • localStorage.key(index) —— 得到某个索引的 key

注:

  • 键/值对始终存储为字符串。如果需要请记得把它们转换为其他格式。

例:

// 存储数据
localStorage.setItem("firstname","li");
// 读取数据
localStorage.getItem("firstname");

// 上例也可这样写:
// 存储
localStorage.firstname = "li";
// 读取
localStorage.firstname;

sessionStorage 对象

sessionStorage 对象针对一个 session (会话)进行数据存储。当用户关闭浏览器窗口后,数据会被删除。

  • sessionStorage.setItem(key,value)
  • sessionStorage.getItem(key)
  • sessionStorage.removeItem(key)
  • sessionStorage.clear()
  • sessionStorage.key(index)

Web 存储 vs Cookie

Web 存储 和 Cookie 区别在于:

  • 存储大小。Web 存储大小 5M 左右,然而 Cookie 的存储大小更小并且和浏览器本身有关(4K左右)。
  • Cookie 存储的内容会保留在 HTTP 请求的 Header 中,并且会随每次请求发送到浏览器;然而 Web 存储只会保留在客户端,浏览器请求过程不会发送到服务端。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值