编辑本段简介
HTML标准自1999年12月发布的 HTML 4.01 后,后继的 HTML 5 和其它标准被束之高阁,为了推动Web标准化运动的发展,一些公司联合起来,成立了一个叫做 Web Hypertext Application Technology Working Group (Web 超文本应用技术工作组 -WHATWG) 的组织。WHATWG 致力于 Web 表单和应用程序,而 W3C(World Wide Web Consortium, 万维网联盟) 专注于 XHTML 2.0。在 2006 年,双方决定进行合作,来创建一个新版本的 HTML。 [1] HTML5草案的前身名为 Web Applications 1.0,于2004年被 WHATWG 提出,于2007年被 W3C 接纳,并成立了新的 HTML 工作团队。 HTML 5 的第一份正式草案已于2008年1月22日公布。HTML5 仍处于完善之中。然而,大部分 现代浏览器已经具备了某些 HTML5 支持。 支持的 浏览器包括Firefox,IE9,Chrome, Safari,Opera等。编辑本段特性
A. 语义特性(Class:Semantic) HTML5赋予网页更好的意义和结构。更加丰富的标签将随着对RDFa的,微数据与 微格式等方面的支持,构建对程序、对用户都更有价值的数据驱动的Web。 B. 本地存储特性(Class: OFFLINE & STORAGE) 基于HTML5开发的网页APP拥有更短的启动时间,更快的联网速度,这些全得益于HTML5 APP Cache,以及本地存储功能。Indexed DB(html5本地存储最重要的技术之一) 和API说明文档。 C. 设备兼容特性 (Class: DEVICE ACCESS) 从 Geolocation 功能的API文档公开以来,HTML5为网页应用开发者们提供了更多功能上的优化选择,带来了更多体验功能的优势。HTML5提供了前所未有的数据与 应用接入开放接口。使外部应用可以直接与 浏览器内部的数据直接相连,例如视频影音可直接与microphones及摄像头相联 D. 连接特性(Class: CONNECTIVITY) 更有效的连接工作效率,使得基于页面的实时聊天,更快速的网页游戏体验,更优化的在线交流得到了实现。HTML5拥有更有效的 服务器推送技术,Server-Sent Event和WebSockets就是其中的两个特性,这两个特性能够帮助我们实现服务器将数据’推送’到客户端的功能。 E. 网页 多媒体特性(Class: MULTIMEDIA) 支持网页端的Audio、Video等多媒体功能, 与网站自带的APPS,摄像头,影音功能相得益彰。 F. 三维、图形及特效特性(Class: 3D, Graphics & Effects) 基于SVG、Canvas、WebGL及CSS3的3D功能,用户会惊叹于在浏览器中,所呈现的惊人视觉效果。 G. 性能与集成特性(Class: Performance & Integration) 没有用户会永远等待你的Loading——HTML5会通过XMLHttpRequest2等技术,帮助您的Web应用和网站在多样化的环境中更快速的工作。 H. CSS3特性(Class: CSS3) 在不牺牲性能和语义结构的前提下,CSS3中提供了更多的风格和更强的效果。此外,较之以前的Web排版,Web的开放字体格式(WOFF)也提供了更高的灵活性和控制性。编辑本段优点
网络标准
HTML5本身是由W3C推荐出来的,它的开发是通过 谷歌、 苹果, 诺基亚、中国移动等几百家公司一起酝酿的技术,这个技术最大的好处在于它是一个公开的技术。换句话说,每一个公开的标准都可以根据W3C的资料库找寻根源。另一方面,W3C通过的HTML5标准也就意味着每一个浏览器或每一个平台都会去实现。多设备、跨平台
用HTML5的优点在于,这个技术可以进行跨平台的使用。比如你开发了一款HTML5的游戏,你可以很轻易地移植到UC的开放平台、Opera的游戏中心、Facebook应用平台,甚至可以通过封装的技术发放到App Store或Google Play上,所以它的跨平台非常强大,也是大多数人对HTML5有兴趣的主要原因。 [1]即时更新
游戏客户端每次都要更新,很麻烦。可是更新HTML5游戏就好像更新页面一样,是马上的、即时的更新。编辑本段游戏盈利解决方案
第一个解决方案,现有的盈利模式可以移植到HTML5.今天游戏通过跟苹果App Store分成赚钱,其实HTML5的模式也可以通过封装把游戏放到App Store一样的分成赚钱。 第二个解决方案,HTML5游戏可以“傍着”平台,比方说Opera的游戏平台或其它浏览器的平台,以及所谓云游戏的游戏平台,都是新的盈利模式的平台。 第三个解决方案,在谈到HTML5游戏与原生应用的表现性能比时,开发者需要考虑清楚要做的究竟是怎样一款游戏,HTML5更适合轻量级的小游戏。而且HTML5在代码保密性方面并不弱于原生应用。 [1]编辑本段沿革
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。 8.Html5取代Flash在移动设备的地位。重要标记
<video>标记 定义和用法: <video> 标签定义视频,比如电影片段或其他 视频流。 <audio> 标记 定义和用法 <audio> 标签定义声音,比如音乐或其他 音频流。 实例: 一段简单的HTML 5 音频 <audio src="someaudio.wav"> 您的 浏览器不支持 audio 标签。 </audio> <canvas> 标记 定义和用法: <canvas> 标签定义图形,比如图表和其他图像。 HTML5 的 canvas 元素使用JavaScript 在网页上绘制图像。 画布是一个矩形区域,您可以控制其每一像素。 canvas 拥有多种绘制路径、矩形、圆形、字符以及添加图像的方法。 实例: 通过 canvas 元素来显示一个红色的矩形: <canvas id="myCanvas"></canvas> <script type="text/javascript"> var canvas=document.getElementById('myCanvas'); var ctx=canvas.getContext('2d'); ctx.fillStyle='#FF0000'; ctx.fillRect(0,0,80,100); </script>程序接口
除了原先的DOM接口,HTML5增加了更多API,如: 1. 用于即时2D绘图的Canvas标签 2. 定时媒体回放 3. 离线数据库存储 4. 文档编辑 5. 拖拽控制 6. 浏览历史管理元素变化
新的解析顺序新的元素:section, video, progress, nav, meter, time, aside, canvasinput 元素的新属性:日期和时间,email, url。 新的通用属性:ping, charset, async 全域属性:id, tabindex, repeat。 移除元素:center, font, strike。异常处理
HTML 5(text/html) 浏览器将在错误语法的处理上更加灵活。HTML 5在设计时保证旧的浏览器能够安全的忽略掉新的HTML 5代码。与HTML 4.01相比,HTML 5给出了解析的详细规则,力图让不同的浏览器即使在发生语法错误时也能返回相同的结果。编辑本段优势
1.提高可用性和改进用户的友好体验; 2.有几个新的标签,这将有助于开发人员定义重要的内容; 3.可以给站点带来更多的多媒体元素(视频和音频); 4.可以很好的替代FLASH和Silverlight; 5.当涉及到网站的抓取和索引的时候,对于SEO很友好; 6.将被大量应用于移动应用程序和游戏。编辑本段标签
标签 | 描述 | 4: 指在HTML 4.01 中定义了该元素 5: 指在HTML 5 中定义了该元素 |
|
---|---|---|---|
<!--...--> | 定义注释 | 4 | 5 |
<!DOCTYPE> | 定义文档类型 | 4 | 5 |
<a> | 定义超链接 | 4 | 5 |
<abbr> | 定义缩写 | 4 | 5 |
<acronym> | HTML 5 中不支持 | 4 | |
<address> | 定义地址元素 | 4 | 5 |
<applet> | 定义 applet(HTML 5 中不支持) | 4 | |
<area> | 定义图像映射中的区域 | 4 | 5 |
<article> | 定义 article | 5 | |
<aside> | 定义页面内容之外的内容 | 5 | |
<audio> | 定义声音内容 | 5 | |
<b> | 定义粗体文本 | 4 | 5 |
<base> | 定义页面中所有链接的基准URL | 4 | 5 |
<basefont> | HTML 5 中不支持,请使用CSS 代替 | 4 | |
<bdo> | 定义文本显示的方向 | 4 | 5 |
<big> | 定义大号文本(HTML 5 中不支持) | 4 | |
<blockquote> | 定义长的引用 | 4 | 5 |
<body> | 定义 body 元素 | 4 | 5 |
<br> | 插入换行符 | 4 | 5 |
<button> | 定义按钮 | 4 | 5 |
<canvas> | 定义图形 | 5 | |
<caption> | 定义表格标题 | 4 | 5 |
<center> | 定义居中的文本(HTML 5 中不支持) | 4 | |
<cite> | 定义引用 | 4 | 5 |
<code> | 定义计算机代码文本 | 4 | 5 |
<col> | 定义表格列的属性 | 4 | 5 |
<colgroup> | 定义表格列的分组 | 4 | 5 |
<command> | 定义命令按钮 | 5 | |
<datalist> | 定义下拉列表 | 5 | |
<dd> | 定义定义的描述 | 4 | 5 |
<del> | 定义删除文本 | 4 | 5 |
<details> | 定义元素的细节 | 5 | |
<dfn> | 定义定义项目 | 4 | 5 |
<dir> | 定义目录列表(HTML 5 中不支持) | 4 | |
<div> | 定义文档中的一个部分 | 4 | 5 |
<dl> | 定义定义列表 | 4 | 5 |
<dt> | 定义定义的项目 | 4 | 5 |
<em> | 定义强调文本 | 4 | 5 |
<embed> | 定义外部交互内容或插件 | 5 | |
<fieldset> | 定义 fieldset | 4 | 5 |
<figcaption> | 定义 figure 元素的标题 | 5 | |
<figure> | 定义媒介内容的分组,以及它们的标题 | 5 | |
<font> | HTML 5 中不支持 | 4 | |
<footer> | 定义 section 或 page 的页脚 | 5 | |
<form> | 定义表单 | 4 | 5 |
<frame> | 定义子窗口(框架)(HTML 5 中不支持) | 4 | |
<frameset> | 定义框架的集(HTML 5 中不支持) | 4 | |
<h1> to <h6> | 定义标题1 到标题6 | 4 | 5 |
<head> | 定义关于文档的信息 | 4 | 5 |
<header> | 定义 section 或 page 的页眉 | 5 | |
<hgroup> | 定义有关文档中的 section 的信息 | 4 | 5 |
<html> | 定义 html 文档 | 4 | 5 |
<i> | 定义斜体文本 | 4 | 5 |
<iframe> | 定义行内的子窗口(框架) | 4 | 5 |
<img> | 定义图像 | 4 | 5 |
<input> | 定义输入域 | 4 | 5 |
<ins> | 定义插入文本 | 4 | 5 |
<keygen> | 定义生成密钥 | 5 | |
<isindex> | 定义单行的输入域(HTML 5 中不支持) | 4 | |
<kbd> | 定义键盘文本 | 4 | 5 |
<label> | 定义表单控件的标注 | 4 | 5 |
<legend> | 定义 fieldset 中的标题 | 4 | 5 |
<li> | 定义列表的项目 | 4 | 5 |
<link> | 定义资源引用 | 4 | 5 |
<map> | 定义图像映射 | 4 | 5 |
<mark> | 定义有记号的文本 | 4 | 5 |
<menu> | 定义菜单列表 | 4 | 5 |
<meta> | 定义元信息 | 4 | 5 |
<meter> | 定义预定义范围内的度量 | 5 | |
<nav> | 定义导航链接 | 5 | |
<noframes> | 定义 noframe 部分(HTML 5 中不支持) | 4 | |
<noscript> | 定义 noscript 部分 | 4 | 5 |
<object> | 定义嵌入对象 | 4 | 5 |
<ol> | 定义有序列表 | 4 | 5 |
<optgroup> | 定义选项组 | 4 | 5 |
<option> | 定义下拉列表中的选项 | 4 | 5 |
<output> | 定义输出的一些类型 | 5 | |
<p> | 定义段落 | 4 | 5 |
<param> | 为对象定义参数 | 4 | 5 |
<pre> | 定义预格式化文本 | 4 | 5 |
<progress> | 定义任何类型的任务的进度 | 5 | |
<q> | 定义短的引用 | 4 | 5 |
<rp> | 定义若浏览器不支持 ruby 元素显示的内容 | 5 | |
<rt> | 定义 ruby 注释的解释 | 5 | |
<ruby> | 定义 ruby 注释 | 5 | |
<s> | 定义加删除线的文本(HTML 5 中不支持) | 4 | |
<samp> | 定义样本计算机代码 | 4 | 5 |
<script> | 定义脚本 | 4 | 5 |
<section> | 定义 section | 4 | 5 |
<select> | 定义可选列表 | 4 | 5 |
<small> | 定义小号文本 | 4 | 5 |
<source> | 定义媒介源 | 4 | 5 |
<span> | 定义文档中的 section | 4 | 5 |
<strike> | 定义加删除线的文本(HTML 5 中不支持) | 4 | |
<strong> | 定义强调文本 | 4 | 5 |
<style> | 定义样式定义 | 4 | 5 |
<sub> | 定义下标文本 | 4 | 5 |
<summary> | 定义 details 元素的标题 | 5 | |
<sup> | 定义上标文本 | 4 | 5 |
标签 | 描述 | 4: 指在HTML 4.01 中定义了该元素 5: 指在HTML 5 中定义了该元素 |
|
---|---|---|---|
<table> | 定义表格 | 4 | 5 |
<tbody> | 定义表格的主体 | 4 | 5 |
<td> | 定义表格单元 | 4 | 5 |
<textarea> | 定义 textarea | 4 | 5 |
<tfoot> | 定义表格的脚注 | 4 | 5 |
<th> | 定义表头 | 4 | 5 |
<thead> | 定义表头 | 4 | 5 |
<time> | 定义日期/时间 | 5 | |
<title> | 定义文档的标题 | 4 | 5 |
<tr> | 定义表格行 | 4 | 5 |
<tt> | 定义打字机文本(HTML 5 中不支持) | 4 | |
<u> | 定义下划线文本(HTML 5 中不支持) | 4 | |
<ul> | 定义无序列表 | 4 | 5 |
<var> | 定义变量 | 4 | 5 |
<video> | 定义视频 | 5 | |
<xmp> | 定义预格式文本(HTML 5 中不支持) | 4 |
事件属性
属性 | 值 | 描述 | 4 | 5 |
---|---|---|---|---|
HTML 5 元素可拥有事件属性,这些属性在浏览器中触发行为,比如当用户单击一个HTML 5元素时启动一段 JavaScript。下面列出的事件属性,可以把它们插入 HTML 标签来定义事件行为。 HTML 5 中的新事件属性:onabort, onbeforeunload, oncontextmenu, ondrag, ondragend, ondragenter, ondragleave, ondragover, ondragstart, ondrop, onerror, onmessage, onmousewheel, onresize, onscroll, onunload。 |
4: 指在HTML 4.01 中定义了该元素 5: 指在HTML 5 中定义了该元素 |
|||
onabort | script | 发生 abort 事件时运行脚本。 | 5 | |
onbeforeonload | script | 在元素加载前运行脚本。 | 5 | |
onblur | script | 当元素失去焦点时运行脚本。 | 4 | 5 |
onchange | script | 当元素改变时运行脚本。 | 4 | 5 |
onclick | script | 在鼠标点击时允许脚本。 | 4 | 5 |
oncontextmenu | script | 当菜单被触发时运行脚本。 | 5 | |
ondblclick | script | 当鼠标双击时运行脚本。 | 4 | 5 |
ondrag | script | 只要脚本在被拖动就允许脚本。 | 5 | |
ondragend | script | 在拖动操作结束时运行脚本。 | 5 | |
ondragenter | script | 当元素被拖动到一个合法的放置目标时,执行脚本。 | 5 | |
ondragleave | script | 当元素离开合法的放置目标时。 | 5 | |
ondragover | script | 只要元素正在合法的放置目标上拖动时,就执行脚本。 | 5 | |
ondragstart | script | 在拖动操作开始时执行脚本。 | 5 | |
ondrop | script | 当元素正在被拖动时执行脚本。 | 5 | |
onerror | script | 当元素加载的过程中出现错误时执行脚本。 | 5 | |
onfocus | script | 当元素获得焦点时执行脚本。 | 4 | 5 |
onkeydown | script | 当按钮按下时执行脚本。 | 4 | 5 |
onkeypress | script | 当按键被按下时执行脚本。 | 4 | 5 |
onkeyup | script | 当按钮松开时执行脚本。 | 4 | 5 |
onload | script | 当文档加载时执行脚本。 | 4 | 5 |
onmessage | script | 当 message 事件触发时执行脚本。 | 5 | |
onmousedown | script | 当鼠标按钮按下时执行脚本。 | 4 | 5 |
onmousemove | script | 当鼠标指针移动时执行脚本。 | 4 | 5 |
onmouseover | script | 当鼠标指针移动到一个元素上时执行脚本。 | 4 | 5 |
onmouseout | script | 当鼠标指针移出元素时执行脚本。 | 4 | 5 |
onmouseup | script | 当鼠标按钮松开时执行脚本。 | 4 | 5 |
onmousewheel | script | 当鼠标滚轮滚动时执行脚本。 | 5 | |
onreset | script | 当表单重置时执行脚本。不支持。 | 4 | |
onresize | script | 当元素调整大小时运行脚本。 | 5 | |
onscroll | script | 当元素滚动条被滚动时执行脚本。 | 5 | |
onselect | script | 当元素被选中时执行脚本。 | 4 | 5 |
onsubmit | script | 当表单提交时运行脚本。 | 4 | 5 |
onunload | script | 当文档卸载时运行脚本。 | 5 | |
HTML 5不再支持的 HTML 4.01 属性:onreset。 |
标签属性
属性 | 值 | 描述 | 4 | 5 |
---|---|---|---|---|
HTML 5标签拥有属性。在每个标签的参考页中可以找到相应的特殊属性。这里列出的属性是通用于每个标签的核心属性和语言属性(有个别例外)。 | 4: 指在HTML 4.01 中定义了该元素 5: 指在HTML 5 中定义了该元素 |
|||
acceskey | a character | 设置访问一个元素的键盘快捷键。不支持。 | 4 | |
class | class_rule orstyle_rule | 元素的类名。 | 4 | 5 |
contenteditable | true false |
设置是否允许用户编辑元素。 | 5 | |
contentextmenu | id of a menu element | 给元素设置一个上下文菜单。 | 5 | |
dir | ltr rtl |
设置文本方向。 | 4 | 5 |
draggable | true false auto |
设置是否允许用户拖动元素。 | 5 | |
id | id_name | 元素的唯一 id。 | 4 | 5 |
irrelevant | true false |
设置元素是否相关。不显示非相关的元素。 | 5 | |
lang | language_code | 设置语言码。 | 4 | 5 |
ref | url or elementID | 引用另一个文档或本文档上另一个位置。仅在 template 属性设置时使用。 | 5 | |
registrationmark | registration mark | 为元素设置拍照。可规定于任何 <rule> 元素的后代元素,除了 <nest> 元素。 | 5 | |
style | style_definition | 行内的样式定义。 | 4 | 5 |
tabindex | number | 设置元素的 tab 顺序。 | 4 | 5 |
template | url or elementID | 引用应该应用到该元素的另一个文档或本文档上另一个位置。 | 5 | |
title | tooltip_text | 显示在工具提示中的文本。 | 4 | 5 |
HTML 5 标签中的新属性有:contenteditable, contextmenu, draggable, irrelevant, ref,registrationmark, template HTML 5 中不再支持的属性:accesskey |