HTML5


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>,这会触发和标准兼容的渲染模式。
发展历史
网页超文本技术工作小组(WHATWG)于2004年开始制定新标准。当时HTML 4.01自2000年以来从未更新,以及万维网联盟(W3C)正在将未来的发展重点放在XHTML 2.0。2009年,W3C允许XHTML 2.0工作组章程结束过期并且决定不再续订。W3C与WHATWG合作共同为发展HTML5而努力。
2004年6月,Mozilla基金会和Opera软件公司在万维网联盟(W3C)所主办的研讨会上提出了一份立场文档,其重点是开发与现有浏览器向后兼容的技术,包括Web Forms 2.0最初草案规范。研讨会以8票赞成,14票反对的结果否决继续对HTML的开发工作。此举引起一些人的不满,因此在研讨会之后,立即成立了网页超文本技术工作小组(WHATWG),并根据该目标展开工作,同时宣布第二个草案Web Applications 1.0。后来这两种规范合并形成HTML5。2007年获得W3C接纳,并成立了新的HTML工作团队。2008年1月22日,第一份公开工作草案发布。在2009年1月5日,HTML5添加了Web Form 2.0的内容,HTML5开始发展起来。
尽管HTML5已经在网络开发人员中非常知名,但它成为主流媒体的话题是在2010年的4月,当时苹果公司的CEO乔布斯发表一篇题为“对Flash的思考”的文章,指出随着HTML5的发展,观看影片或其它内容时,Adobe Flash将不再是必须的。这引发了开发人员间的争论,包括HTML5虽然提供了加强的功能,但开发人员必须考虑到不同浏览器对标准不同部分的支持程度的不同,以及HTML5和Flash间的功能差异。
2014年10月28日,W3C正式发布HTML5推荐标准。
新的API
HTML5相关APIs

除了原先的DOM接口,HTML5增加了更多样化的应用程序接口(API):
Canvas
定时媒体播放
离线
可编辑内容
拖放
历史
MIME和协议进程时表头登记
微数据
网络消息
网络存储
以上技术尽管是WHATWG HTML说明文档的内容,但并没有全部包括在W3C HTML5的说明文档里。一些相关的技术,像下面所列的,并没有包括在这2份文档中的任何一份中。W3C给这些技术单独出版了说明文档。
地理位置
网页SQL数据库 ─ 本地SQL数据库(不再维护)
IndexedDB
文件 ─ 处理文件上传和操纵文件
目录和文件系统 ─ 这个API是为了满足客户端在没有好的数据库支持情况下存储要求
文件写入 ─ 从网络应用程序向文件里写内容
网络音频
ClassList
网络加密
WebRTC
一个普遍的误解是HTML5能够在网页中提供动画效果,这是不对的,动画效果是需要配合JavaScript和CSS。然而静态HTML5配合CSS可以表示出复杂的排版结构而且原生支持与影片的混合与控制(控制一般由JavaScript执行),因此简单可以把HTML5单位时间的状态理解为动画的关键帧。
除了原先的DOM接口,HTML5增加了更多样化的API
实时二维绘图
Canvas:有关动态产出与渲染图形、图表、图像和动画的API。
定时媒体播放
音频与视频: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。

广义论及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>,这会触发和标准兼容的渲染模式。
发展历史
网页超文本技术工作小组(WHATWG)于2004年开始制定新标准。当时HTML 4.01自2000年以来从未更新,以及万维网联盟(W3C)正在将未来的发展重点放在XHTML 2.0。2009年,W3C允许XHTML 2.0工作组章程结束过期并且决定不再续订。W3C与WHATWG合作共同为发展HTML5而努力。
2004年6月,Mozilla基金会和Opera软件公司在万维网联盟(W3C)所主办的研讨会上提出了一份立场文档,其重点是开发与现有浏览器向后兼容的技术,包括Web Forms 2.0最初草案规范。研讨会以8票赞成,14票反对的结果否决继续对HTML的开发工作。此举引起一些人的不满,因此在研讨会之后,立即成立了网页超文本技术工作小组(WHATWG),并根据该目标展开工作,同时宣布第二个草案Web Applications 1.0。后来这两种规范合并形成HTML5。2007年获得W3C接纳,并成立了新的HTML工作团队。2008年1月22日,第一份公开工作草案发布。在2009年1月5日,HTML5添加了Web Form 2.0的内容,HTML5开始发展起来。
尽管HTML5已经在网络开发人员中非常知名,但它成为主流媒体的话题是在2010年的4月,当时苹果公司的CEO乔布斯发表一篇题为“对Flash的思考”的文章,指出随着HTML5的发展,观看影片或其它内容时,Adobe Flash将不再是必须的。这引发了开发人员间的争论,包括HTML5虽然提供了加强的功能,但开发人员必须考虑到不同浏览器对标准不同部分的支持程度的不同,以及HTML5和Flash间的功能差异。
2014年10月28日,W3C正式发布HTML5推荐标准。
新的API
HTML5相关APIs

除了原先的DOM接口,HTML5增加了更多样化的应用程序接口(API):
Canvas
定时媒体播放
离线
可编辑内容
拖放
历史
MIME和协议进程时表头登记
微数据
网络消息
网络存储
以上技术尽管是WHATWG HTML说明文档的内容,但并没有全部包括在W3C HTML5的说明文档里。一些相关的技术,像下面所列的,并没有包括在这2份文档中的任何一份中。W3C给这些技术单独出版了说明文档。
地理位置
网页SQL数据库 ─ 本地SQL数据库(不再维护)
IndexedDB
文件 ─ 处理文件上传和操纵文件
目录和文件系统 ─ 这个API是为了满足客户端在没有好的数据库支持情况下存储要求
文件写入 ─ 从网络应用程序向文件里写内容
网络音频
ClassList
网络加密
WebRTC
一个普遍的误解是HTML5能够在网页中提供动画效果,这是不对的,动画效果是需要配合JavaScript和CSS。然而静态HTML5配合CSS可以表示出复杂的排版结构而且原生支持与影片的混合与控制(控制一般由JavaScript执行),因此简单可以把HTML5单位时间的状态理解为动画的关键帧。
除了原先的DOM接口,HTML5增加了更多样化的API
实时二维绘图
Canvas:有关动态产出与渲染图形、图表、图像和动画的API。
定时媒体播放
音频与视频: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。