HTML5 Overview 11/25

Why HTML5?

•HTML5 enables mobile and desktop Web site designers to deliver the advantages of client-side and server-side development to their users simultaneously.

•API development and workability in the browsers will take a leap forward.

What does HTML5 mean to Web designers?

•new tags for semantic layout

•improved microformatting

•new tags for incorporating rich media

•new tags for APIs, applications

doctype

•<!DOCTYPE HTML>

HTML5 – basic document structure

<DOCTYPE HTML>
<html lang=”en”>
<head>
<meta charset=”UTF-8″>
<title>HTML5</title>
</head>
<body>
</body>
</html>

HTML5 改进特性

HTML5提供了一些新的元素和属性,例如<nav>(网站导航块)和<footer>。这种标签将有利于搜索引擎的索引整理,同时更好的帮助小屏幕装置和视障人士使用,除此之外,还为其他浏览要素提供了新的功能,如<audio>和<video>标记。

  1.取消了一些过时的HTML4标记

  其中包括纯粹显示效果的标记,如<font>和<center>,它们已经被CSS取代。

  HTML5 吸取了XHTML2 一些建议,包括一些用来改善文档结构的功能,比如,新的HTML 标签 header, footer, dialog, aside, figure 等的使用,将使内容创作者更加语义地创建文档,之前的开发者在实现这些功能时一般都是使用div。

  2.将内容和展示分离

  b 和 i 标签依然保留,但它们的意义已经和之前有所不同,这些标签的意义只是为了将一段文字标识出来,而不是为了为它们设置粗体或斜体式样。u,font,center,strike 这些标签则被完全去掉了。

  3.一些全新的表单输入对象

  包括日期,URL,Email 地址,其它的对象则增加了对非拉丁字符的支持。HTML5 还引入了微数据,这一使用机器可以识别的标签标注内容的方法,使语义Web 的处理更为简单。总的来说,这些与结构有关的改进使内容创建者可以创建更干净,更容易管理的网页,这样的网页对搜索引擎,对读屏软件等更为友好。

  4.全新的,更合理的Tag

多媒体对象将不再全部绑定在 object 或 embed Tag 中,而是视频有视频的Tag,音频有音频的 Tag。

  5.本地数据库

  这个功能将内嵌一个本地的SQL 数据库,以加速交互式搜索,缓存以及索引功能。同时,那些离线Web 程序也将因此获益匪浅。不需要插件的富动画。

  6.Canvas 对象

  将给浏览器带来直接在上面绘制矢量图的能力,这意味着用户可以脱离Flash 和Silverlight,直接在浏览器中显示图形或动画。

  7.浏览器中的真正程序

  将提供 API 实现浏览器内的编辑,拖放,以及各种图形用户界面的能力。内容修饰Tag 将被剔除,而使用CSS。

HTML 5 事件属性

全局事件属性

HTML 4 增加了通过事件触发浏览器中行为的能力,比如当用户点击某个元素时启动一段 JavaScript。

如果需要学习更多有关使用这些事件进行编程的内容,请学习我们的 JavaScript 教程 和 DHTML 教程。

下面的表格列出了可插入 HTML 5 元素中以定义事件行为的标准事件属性。

  • Window 事件属性 – Window Event Attributes
  • 表单事件 – Form Events
  • 键盘事件 – Keybord Events
  • 鼠标事件 – Mouse Events
  • 媒介事件 – Media Events

new:HTML 5 中的新的事件属性。

Window 事件属性

window 对象触发的事件。

适用于 <body> 标签:

属性

描述

onafterprint
script
在打印文档之后运行脚本

onbeforeprint
script
在文档打印之前运行脚本

onbeforeonload
script
在文档加载之前运行脚本

onblur
script
当窗口失去焦点时运行脚本

onerror
script
当错误发生时运行脚本

onfocus
script
当窗口获得焦点时运行脚本

onhaschange
script
当文档改变时运行脚本

onload
script
当文档加载时运行脚本

onmessage
script
当触发消息时运行脚本

onoffline
script
当文档离线时运行脚本

ononline
script
当文档上线时运行脚本

onpagehide
script
当窗口隐藏时运行脚本

onpageshow
script
当窗口可见时运行脚本

onpopstate
script
当窗口历史记录改变时运行脚本

onredo
script
当文档执行再执行操作(redo)时运行脚本

onresize
script
当调整窗口大小时运行脚本

onstorage
script
当文档加载加载时运行脚本

onundo
script
当 Web Storage 区域更新时(存储空间中的数据发生变化时)

onunload
script
当用户离开文档时运行脚本

表单事件

由 HTML 表单内部的动作触发的事件。

适用于所有 HTML 5 元素,不过最常用于表单元素中:

属性

描述

onblur
script
当元素失去焦点时运行脚本

onchange
script
当元素改变时运行脚本

oncontextmenu
script
当触发上下文菜单时运行脚本

onfocus
script
当元素获得焦点时运行脚本

onformchange
script
当表单改变时运行脚本

onforminput
script
当表单获得用户输入时运行脚本

oninput
script
当元素获得用户输入时运行脚本

oninvalid
script
当元素无效时运行脚本

onreset
script
当表单重置时运行脚本。HTML 5 不支持。

onselect
script
当选取元素时运行脚本

onsubmit
script
当提交表单时运行脚本

键盘事件

由键盘触发的事件。

适用于所有 HTML 5 元素:

属性

描述

onkeydown
script
当按下按键时运行脚本

onkeypress
script
当按下并松开按键时运行脚本

onkeyup
script
当松开按键时运行脚本

鼠标事件

由鼠标或相似的用户动作触发的事件。

适用于所有 HTML 5 元素:

属性

描述

onclick
script
当单击鼠标时运行脚本

ondblclick
script
当双击鼠标时运行脚本

ondrag
script
当拖动元素时运行脚本

ondragend
script
当拖动操作结束时运行脚本

ondragenter
script
当元素被拖动至有效的拖放目标时运行脚本

ondragleave
script
当元素离开有效拖放目标时运行脚本

ondragover
script
当元素被拖动至有效拖放目标上方时运行脚本

ondragstart
script
当拖动操作开始时运行脚本

ondrop
script
当被拖动元素正在被拖放时运行脚本

onmousedown
script
当按下鼠标按钮时运行脚本

onmousemove
script
当鼠标指针移动时运行脚本

onmouseout
script
当鼠标指针移出元素时运行脚本

onmouseover
script
当鼠标指针移至元素之上时运行脚本

onmouseup
script
当松开鼠标按钮时运行脚本

onmousewheel
script
当转动鼠标滚轮时运行脚本

onscroll
script
当滚动元素滚动元素的滚动条时运行脚本

媒介事件

由视频、图像以及音频等媒介触发的事件。

适用于所有 HTML 5 元素,不过在媒介元素(诸如 audio、embed、img、object 以及 video)中最常用:

属性

描述

onabort
script
当发生中止事件时运行脚本

oncanplay
script
当媒介能够开始播放但可能因缓冲而需要停止时运行脚本

oncanplaythrough
script
当媒介能够无需因缓冲而停止即可播放至结尾时运行脚本

ondurationchange
script
当媒介长度改变时运行脚本

onemptied
script
当媒介资源元素突然为空时(网络错误、加载错误等)运行脚本

onended
script
当媒介已抵达结尾时运行脚本

onerror
script
当在元素加载期间发生错误时运行脚本

onloadeddata
script
当加载媒介数据时运行脚本

onloadedmetadata
script
当媒介元素的持续时间以及其他媒介数据已加载时运行脚本

onloadstart
script
当浏览器开始加载媒介数据时运行脚本

onpause
script
当媒介数据暂停时运行脚本

onplay
script
当媒介数据将要开始播放时运行脚本

onplaying
script
当媒介数据已开始播放时运行脚本

onprogress
script
当浏览器正在取媒介数据时运行脚本

onratechange
script
当媒介数据的播放速率改变时运行脚本

onreadystatechange
script
当就绪状态(ready-state)改变时运行脚本

onseeked
script
当媒介元素的定位属性 [1] 不再为真且定位已结束时运行脚本

onseeking
script
当媒介元素的定位属性为真且定位已开始时运行脚本

onstalled
script
当取回媒介数据过程中(延迟)存在错误时运行脚本

onsuspend
script
当浏览器已在取媒介数据但在取回整个媒介文件之前停止时运行脚本

ontimeupdate
script
当媒介改变其播放位置时运行脚本

onvolumechange
script
当媒介改变音量亦或当音量被设置为静音时运行脚本

onwaiting
script
当媒介已停止播放但打算继续播放时运行脚本

[1]:定位属性的英文译文是:seeking attribute。

HTML 5 标准属性

所有 HTML 5 标签均支持下面列出的属性,仅有少数例外。

HTML 5 标准属性

NEW:HTML 5 中新的标准属性。

注释:HTML 4.01 不再支持 accesskey 属性:

属性

描述

accesskey
character
规定访问元素的键盘快捷键

class
classname
规定元素的类名(用于规定样式表中的类)。

contenteditable

  • true
  • false

规定是否允许用户编辑内容。

contextmenu
menu_id
规定元素的上下文菜单。

data-yourvalue
value

创作者定义的属性。

HTML 文档的创作者可以定义他们自己的属性。

必须以 “data-” 开头。

dir

  • ltr
  • rtl

规定元素中内容的文本方向。

draggable

  • true
  • false
  • auto

规定是否允许用户拖动元素。

hidden
hidden
规定该元素是无关的。被隐藏的元素不会显示。

id
id
规定元素的唯一 ID。

item

  • empty
  • url

用于组合元素。

itemprop

  • url
  • group value

用于组合项目。

lang
language_code
规定元素中内容的语言代码。语言代码参考手册。

spellcheck

  • true
  • false

规定是否必须对元素进行拼写或语法检查。

style
style_definition
规定元素的行内样式。

subject
id
规定元素对应的项目。

tabindex
number
规定元素的 tab 键控制次序。

title
text
规定有关元素的额外信息。

HTML 5 参考手册

HTML 5

通过制定如何处理所有 HTML 元素以及如何从错误中恢复的精确规则,HTML 5 改进了互操作性,并减少了开发成本。

HTML 5 中的新特性包括了嵌入音频、视频和图形的功能,客户端数据存储,以及交互式文档。

HTML 5 还包含了新的元素,比如:<nav>, <header>, <footer> 以及 <figure> 等等。

HTML 5 工作组包括:AOL, Apple, Google, IBM, Microsoft, Mozilla, Nokia, Opera, 以及数百个其他的供应商。

注释:HTML 5 还没有成为 W3C 正式的推荐标准。

如需阅读更多有关 W3C HTML 5 活动的内容,请阅读我们的 W3C 教程。

按字母顺序排列的标签列表

new : HTML5 中的新标签。

标签
描述

<!–…–>
定义注释。

<!DOCTYPE>
定义文档类型。

<a>
定义超链接。

<abbr>
定义缩写。

<acronym>
HTML 5 中不支持。定义首字母缩写。

<address>
定义地址元素。

<applet>
HTML 5 中不支持。定义 applet。

<area>
定义图像映射中的区域。

<article>
定义 article。

<aside>
定义页面内容之外的内容。

<audio>
定义声音内容。

<b>
定义粗体文本。

<base>
定义页面中所有链接的基准 URL。

<basefont>
HTML 5 中不支持。请使用 CSS 代替。

<bdi>
定义文本的文本方向,使其脱离其周围文本的方向设置。

<bdo>
定义文本显示的方向。

<big>
HTML 5 中不支持。定义大号文本。

<blockquote>
定义长的引用。

<body>
定义 body 元素。

<br>
插入换行符。

<button>
定义按钮。

<canvas>
定义图形。

<caption>
定义表格标题。

<center>
HTML 5 中不支持。定义居中的文本。

<cite>
定义引用。

<code>
定义计算机代码文本。

<col>
定义表格列的属性。

<colgroup>
定义表格列的分组。

<command>
定义命令按钮。

<datalist>
定义下拉列表。

<dd>
定义定义的描述。

<del>
定义删除文本。

<details>
定义元素的细节。

<dfn>
定义定义项目。

<dir>
HTML 5 中不支持。定义目录列表。

<div>
定义文档中的一个部分。

<dl>
定义定义列表。

<dt>
定义定义的项目。

<em>
定义强调文本。

<embed>
定义外部交互内容或插件。

<fieldset>
定义 fieldset。

<figcaption>
定义 figure 元素的标题。

<figure>
定义媒介内容的分组,以及它们的标题。

<font>
HTML 5 中不支持。

<footer>
定义 section 或 page 的页脚。

<form>
定义表单。

<frame>
HTML 5 中不支持。定义子窗口(框架)。

<frameset>
HTML 5 中不支持。定义框架的集。

<h1> to <h6>
定义标题 1 到标题 6。

<head>
定义关于文档的信息。

<header>
定义 section 或 page 的页眉。

<hgroup>
定义有关文档中的 section 的信息。

<hr>
定义水平线。

<html>
定义 html 文档。

<i>
定义斜体文本。

<iframe>
定义行内的子窗口(框架)。

<img>
定义图像。

<input>
定义输入域。

<ins>
定义插入文本。

<keygen>
定义生成密钥。

<isindex>
HTML 5 中不支持。定义单行的输入域。

<kbd>
定义键盘文本。

<label>
定义表单控件的标注。

<legend>
定义 fieldset 中的标题。

<li>
定义列表的项目。

<link>
定义资源引用。

<map>
定义图像映射。

<mark>
定义有记号的文本。

<menu>
定义菜单列表。

<meta>
定义元信息。

<meter>
定义预定义范围内的度量。

<nav>
定义导航链接。

<noframes>
HTML 5 中不支持。定义 noframe 部分。

<noscript>
定义 noscript 部分。

<object>
定义嵌入对象。

<ol>
定义有序列表。

<optgroup>
定义选项组。

<option>
定义下拉列表中的选项。

<output>
定义输出的一些类型。

<p>
定义段落。

<param>
为对象定义参数。

<pre>
定义预格式化文本。

<progress>
定义任何类型的任务的进度。

<q>
定义短的引用。

<rp>
定义若浏览器不支持 ruby 元素显示的内容。

<rt>
定义 ruby 注释的解释。

<ruby>
定义 ruby 注释。

<s>
HTML 5 中不支持。定义加删除线的文本。

<samp>
定义样本计算机代码。

<script>
定义脚本。

<section>
定义 section。

<select>
定义可选列表。

<small>
将旁注 (side comments) 呈现为小型文本。

<source>
定义媒介源。

<span>
定义文档中的 section。

<strike>
HTML 5 中不支持。定义加删除线的文本。

<strong>
定义强调文本。

<style>
定义样式定义。

<sub>
定义下标文本。

<summary>
定义 details 元素的标题。

<sup>
定义上标文本。

<table>
定义表格。

<tbody>
定义表格的主体。

<td>
定义表格单元。

<textarea>
定义 textarea。

<tfoot>
定义表格的脚注。

<th>
定义表头。

<thead>
定义表头。

<time>
定义日期/时间。

<title>
定义文档的标题。

<tr>
定义表格行。

<track>
定义用在媒体播放器中的文本轨道。

<tt>
HTML 5 中不支持。定义打字机文本。

<u>
HTML 5 中不支持。定义下划线文本。

<ul>
定义无序列表。

<var>
定义变量。

<video>
定义视频。

<xmp>
HTML 5 中不支持。定义预格式文本。

HTML5 表单属性

HTML5 的新的表单属性

本章讲解涉及 <form> 和 <input> 元素的新属性。

新的 form 属性:
  • autocomplete
  • novalidate
新的 input 属性:
  • autocomplete
  • autofocus
  • form
  • form overrides (formaction, formenctype, formmethod, formnovalidate, formtarget)
  • height 和 width
  • list
  • min, max 和 step
  • multiple
  • pattern (regexp)
  • placeholder
  • required

浏览器支持

Input type
IE
Firefox
Opera
Chrome
Safari

autocomplete
8.0
3.5
9.5
3.0
4.0

autofocus
No
No
10.0
3.0
4.0

form
No
No
9.5
No
No

form overrides
No
No
10.5
No
No

height and width
8.0
3.5
9.5
3.0
4.0

list
No
No
9.5
No
No

min, max and step
No
No
9.5
3.0
No

multiple
No
3.5
No
3.0
4.0

novalidate
No
No
No
No
No

pattern
No
No
9.5
3.0
No

placeholder
No
No
No
3.0
3.0

required
No
No
9.5
3.0
No

autocomplete 属性

autocomplete 属性规定 form 或 input 域应该拥有自动完成功能。

注释:autocomplete 适用于 <form> 标签,以及以下类型的 <input> 标签:text, search, url, telephone, email, password, datepickers, range 以及 color。

当用户在自动完成域中开始输入时,浏览器应该在该域中显示填写的选项:

实例
<form action="demo_form.asp" method="get" autocomplete="on">
First name: <input type="text" name="fname" /><br />
Last name: <input type="text" name="lname" /><br />
E-mail: <input type="email" name="email" autocomplete="off" /><br />
<input type="submit" />
</form>

亲自试一试

注释:在某些浏览器中,您可能需要启用自动完成功能,以使该属性生效。

autofocus 属性

autofocus 属性规定在页面加载时,域自动地获得焦点。

注释:autofocus 属性适用于所有 <input> 标签的类型。

实例
User name: <input type="text" name="user_name"  autofocus="autofocus" />

亲自试一试

form 属性

form 属性规定输入域所属的一个或多个表单。

注释:form 属性适用于所有 <input> 标签的类型。

form 属性必须引用所属表单的 id:

实例
<form action="demo_form.asp" method="get" id="user_form">
First name:<input type="text" name="fname" />
<input type="submit" />
</form>
Last name: <input type="text" name="lname" form="user_form" />

亲自试一试

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

表单重写属性

表单重写属性(form override attributes)允许您重写 form 元素的某些属性设定。

表单重写属性有:

  • formaction – 重写表单的 action 属性
  • formenctype – 重写表单的 enctype 属性
  • formmethod – 重写表单的 method 属性
  • formnovalidate – 重写表单的 novalidate 属性
  • formtarget – 重写表单的 target 属性

注释:表单重写属性适用于以下类型的 <input> 标签:submit 和 image。

实例
<form action="demo_form.asp" method="get" id="user_form">
E-mail: <input type="email" name="userid" /><br />
<input type="submit" value="Submit" />
<br />
<input type="submit" formaction="demo_admin.asp" value="Submit as admin" />
<br />
<input type="submit" formnovalidate="true" value="Submit without validation" />
<br />
</form>

亲自试一试

注释:这些属性对于创建不同的提交按钮很有帮助。

height 和 width 属性

height 和 width 属性规定用于 image 类型的 input 标签的图像高度和宽度。

注释:height 和 width 属性只适用于 image 类型的 <input> 标签。

实例
<input type="image" src="img_submit.gif" width="99" height="99" />

亲自试一试

list 属性

list 属性规定输入域的 datalist。datalist 是输入域的选项列表。

注释:list 属性适用于以下类型的 <input> 标签:text, search, url, telephone, email, date pickers, number, range 以及 color。

实例
Webpage: <input type="url" list="url_list" name="link" />
<datalist id="url_list">
<option label="W3Schools" value="http://www.w3school.com.cn" />
<option label="Google" value="http://www.google.com" />
<option label="Microsoft" value="http://www.microsoft.com" />
</datalist>

亲自试一试

min、max 和 step 属性

min、max 和 step 属性用于为包含数字或日期的 input 类型规定限定(约束)。

max 属性规定输入域所允许的最大值。

min 属性规定输入域所允许的最小值。

step 属性为输入域规定合法的数字间隔(如果 step=”3″,则合法的数是 -3,0,3,6 等)。

注释:min、max 和 step 属性适用于以下类型的 <input> 标签:date pickers、number 以及 range。

下面的例子显示一个数字域,该域接受介于 0 到 10 之间的值,且步进为 3(即合法的值为 0、3、6 和 9):

实例
Points: <input type="number" name="points" min="0" max="10" step="3" />

亲自试一试

multiple 属性

multiple 属性规定输入域中可选择多个值。

注释:multiple 属性适用于以下类型的 <input> 标签:email 和 file。

实例
Select images: <input type="file" name="img" multiple="multiple" />

亲自试一试

novalidate 属性

novalidate 属性规定在提交表单时不应该验证 form 或 input 域。

注释:novalidate 属性适用于 <form> 以及以下类型的 <input> 标签:text, search, url, telephone, email, password, date pickers, range 以及 color.

实例
<form action="demo_form.asp" method="get" novalidate="true">
E-mail: <input type="email" name="user_email" />
<input type="submit" />
</form>

亲自试一试

pattern 属性

pattern 属性规定用于验证 input 域的模式(pattern)。

模式(pattern) 是正则表达式。您可以在我们的 JavaScript 教程中学习到有关正则表达式的内容。

注释:pattern 属性适用于以下类型的 <input> 标签:text, search, url, telephone, email 以及 password。

下面的例子显示了一个只能包含三个字母的文本域(不含数字及特殊字符):

实例
Country code: <input type="text" name="country_code"
pattern="[A-z]{3}" title="Three letter country code" />

亲自试一试

placeholder 属性

placeholder 属性提供一种提示(hint),描述输入域所期待的值。

注释:placeholder 属性适用于以下类型的 <input> 标签:text, search, url, telephone, email 以及 password。

提示(hint)会在输入域为空时显示出现,会在输入域获得焦点时消失:

实例
<input type="search" name="user_search"  placeholder="Search W3School" />

亲自试一试

required 属性

required 属性规定必须在提交之前填写输入域(不能为空)。

注释:required 属性适用于以下类型的 <input> 标签:text, search, url, telephone, email, password, date pickers, number, checkbox, radio 以及 file。

实例
Name: <input type="text" name="usr_name" required="required" />