HTML5
2013-06-08 16:37:30 阿炯

HTML5是HTML下一个主要的修订版本,现在仍处于发展阶段。目标是取代1999年所制定的HTML 4.01和XHTML 1.0 标准,以期能在互联网应用迅速发展的时候,使网络标准达到符合当代的网络需求。


广义论及HTML5时,实际指的是包括HTML、CSS和JavaScript在内的一套技术组合。它希望能够减少浏览器对于需要插件的丰富性网络应用服务(plug-in-based rich internet application,RIA),如Adobe Flash、Microsoft Silverlight,与Oracle JavaFX的需求,并且提供更多能有效增强网络应用的标准集。

具体来说,HTML5添加了许多新的语法特征,其中包括<video>, <audio>, 和<canvas>元素,同时集成了SVG内容。这些元素是为了更容易的在网页中添加和处理多媒体和图片内容而添加的。其它新的元素包括<section>, <article>, <header>, 和<nav>,是为了丰富文档的数据内容。新的属性的添加也是为了同样的目的。同时也有一些属性和元素被移除掉了。另外一些元素,像<a>, <cite>和<menu>被修改,重新定义或标准化了。同时APIs和DOM已经成为HTML5中的基础部分了。HTML5还定义了处理非法文档的具体细节,使得所有浏览器和客户端程序能够一致地处理语法错误。

HTML 5提供了一些新的元素和属性,反映典型的现代用法网站。其中有些是技术上类似<div>和<span>标签,但有一定含义,例如<nav>(网站导航块)和<footer>。这种标签将有利于搜索引擎的索引整理、小屏幕设备和视障人士使用。同时为其他浏览要素提供了新的功能,通过一个标准接口,如<audio>和<video>标记。

一些过时的HTML 4标记将取消,其中包括纯粹用作显示效果的标记,如<font>和<center>,因为它们已经被CSS取代。还有一些通过DOM的网络行为。

尽管和SGML在标记上的相似性,HTML5的句法并不再基于它了,而是被设计成向后兼容对老版本的HTML的解析。它有一个新的开始行看起来就像SGML的文档类型声明,<!DOCTYPE HTML>,这会触发和标准兼容的渲染模式。在2009年1月5号,HTML5添加了Web Form 2.0的内容,html5开始发展起来。


除了原先的DOM接口,HTML5增加了更多样化的API

实时二维绘图
Canvas API:有关动态产出与渲染图形、图表、图像和动画的API。
定时媒体播放
HTML5 音频与视频:HTML5里新增的元素,它们为开发者提供了一套通用的、集成的、脚本式的处理音频与视频的API,而无需安装任何插件。
离线存储数据库(离线网络应用程序)
拖放
跨文档通信
通信/网络
Communication APIs:构建实时和跨源(cross-origin)通信的两大基础: 跨文档通信(Cross Document Messaging)与 XMLHttpRequest Level 2。
浏览历史管理
MIME和协议处理程序时表头登记
微数据

以上技术尽管是WHATWG HTML说明文档的内容,但并没有全部包括在W3C HTML5的说明文档里。一些相关的技术,像下面所列的,并没有包括在这2份文档中的任何一份中,W3C给这些技术单独出版了说明文档:
Geolocation API:用户可共享地理位置,并在Web应用的协助下享用位置感知服务。
索引数据库API。
文件API:处理文件上传和操纵文件。
目录和文件系统:这个API是为了满足客户端在没有好的数据库支持情况下存储要求。
文件写入:从网络应用程序向文件里写内容。
一个普遍的误解是HTML5能够在网页中提供动画效果,这是不对的。动画效果是由JavaScript和CSS达成的。

与HTML 4的不同之处

以下为大略的不同之处,与例子:
文件类型声明(<!DOCTYPE>)仅有一型:<!DOCTYPE HTML>。
新的解析顺序:不再基于SGML。
新的元素:section, video, progress, nav, meter, time, aside, canvas, command, datalist, details, embed, figcaption, figure, footer, header, hgroup, keygen, mark, output, rp, rt, ruby, source, summary, wbr。
input元素的新类型:date, email, url 等等。
新的属性:ping(用于a与area), charset(用于meta), async(用于script)。
全局属性:id, tabindex, repeat。
新的全局属性:contenteditable, contextmenu, draggable, dropzone, hidden, spellcheck。
移除元素:acronym, applet, basefont, big, center, dir, font, frame, frameset, isindex, noframes, strike, tt。