HTML5是HTML最新的修订版本,由万维网联盟(W3C)于2014年10月完成标准制定。目标是取代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还定义了处理非法文档的具体细节,使得所有浏览器和客户端程序能够一致地处理语法错误。
发展历史
网页超文本技术工作小组(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日,第一份公开工作草案发布。
尽管HTML5已经在网络开发人员中非常出名,但它成为主流媒体的话题是在2010年的4月,当时苹果公司的CEO乔布斯发表一篇题为“对Flash的思考”的文章,指出随着HTML5的发展,观看视频或其它内容时,Adobe Flash将不再是必须的。这引发了开发人员间的争论,包括HTML5虽然提供了加强的功能,但开发人员必须考虑到不同浏览器对标准不同部分的支持程度的不同,以及HTML5和Flash间的功能差异。
2014年10月28日,W3C正式发布HTML 5.0推荐标准。
时间表
HTML5.0,HTML5.1和HTML5.2的合并时间表:
2012年 | 2013年 | 2014年 | 2015年 | 2016年 | 2017年 | 2018年 | |
---|---|---|---|---|---|---|---|
HTML 5.0 | 候选版 | 征求评价 | 推荐标准 | ||||
HTML 5.1 | 第一工作草案 | 最后召集 | 候选版 | 推荐标准 | |||
HTML 5.2 | 第一工作草案 | 候选版 | 推荐标准 | ||||
HTML 5.3 | 编者草案 |
特点
标记
HTML5提供了一些新的元素和属性,反映典型的现代用法网站。其中有些是技术上类似<div>
和<span>
标签,但有一定含义,例如<nav>
(网站导航块)和<footer>
。这种标签将有利于搜索引擎的索引整理、小屏幕设备和视障人士使用。同时为其他浏览要素提供了新的功能,通过一个标准接口,如<audio>
和<video>
标记。一些过时的HTML 4.01标记将取消,其中包括纯粹用作显示效果的标记,如<font>
和<center>
,因为它们已经被CSS取代。还有一些通过DOM的网络行为。
尽管和SGML在标记上的相似性,HTML5的句法并不再基于它了,而是被设计成向后兼容对老版本的HTML的解析。它有一个新的开始列看起来就像SGML的文档类型声明,<!DOCTYPE HTML>
,这会触发和标准兼容的渲染模式。在2009年1月5日,HTML5添加了Web Form 2.0的内容,HTML5开始发展起来。
新的API
除了原先的DOM接口,HTML5增加了更多样化的应用程序接口(API):
- Canvas
- 定时媒体播放
- 离线
- 可编辑内容
- 拖放
- 历史
- MIME和协议进程时表头登记
- 微数据
- 网络消息
- 网络存储
以上技术尽管是WHATWG HTML说明文档的内容,但并没有全部包括在W3C HTML5的说明文档里。一些相关的技术,像下面所列的,并没有包括在这2份文档中的任何一份中。W3C给这些技术单独出版了说明文档。
- 地理位置
- 网页SQL数据库 ─ 本地SQL数据库(不再维护)
- IndexedDB
- 文件 ─ 处理文件上传和操纵文件
- 目录和文件系统 ─ 这个API是为了满足客户端在没有好的数据库支持情况下存储要求
- 文件写入 ─ 从网络应用程序向文件里写内容
- 网络音频
- ClassList
- 网络加密
- WebRTC
一个普遍的误解是HTML5能够在网页中提供动画效果,这是不对的,动画效果是需要配合JavaScript和CSS。然而静态HTML5配合CSS可以表示出复杂的排版结构而且原生支持与视频的混合与控制(控制一般由JavaScript执行),因此简单可以把HTML5单位时间的状态理解为动画的关键帧。
XHTML5(XML-serialized HTML5)
XHTML5是对HTML5的XML序列化。XML文档必须被设置为XML互联网文件类型,像application/xhtml+xml
或者application/xml
。XHTML5要求像XML一样严格的格式化的语法。在XHTML5中,HTML5的<!DOCTYPE HTML>
可有可无的。
XHTML5并非XHTML的第5版,没有自己独立的标准规范,而是HTML5的一种序列化方式。XHTML1.x和2.0使用的名字是Extensible HyperText Markup Language,不同于XHTML5。
异常处理
HTML5在设计时保证旧的浏览器能够安全地忽略掉新的HTML5代码。与HTML4.01相比,HTML5给出了解析的完整规则,让不同的浏览器即使在发生语法错误时也能返回完全相同的结果。
普及率
根据2011年9月30日发布的一份报告,全球排名前100的网站中有34个网站使用HTML5──主要是搜索引擎与社交网站。2013年8月发布的另一份报告显示,财富美国500强企业中已有多达153家采用HTML5。
HTML 5和XHTML 1.x的差异
以下为大略的不同之处,与例子:
- 文件类型声明(
<!DOCTYPE>
)仅有一型:<!DOCTYPE HTML>
。 - 新的解析顺序:不再基于SGML。
- 新的元素:
section
,video
,audio
,bdi
,progress
,nav
,meter
,time
,article
,aside
,canvas
,command
,datalist
,details
,embed
,figcaption
,figure
,footer
,header
,hgroup
,keygen
,mark
,output
,rp
,rt
,ruby
,source
,summary
,wbr
,track
。 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 Test网站,是用以测试对浏览器对热门新功能的支持。测试的满分是555分。而当中的额外分数表示浏览器对一些没有列入W3C的标准亦有支持,例如<video>
元素并没有指明编码标准,HTML5支持MPEG-4、H.264、Ogg Theora及WebM 影音编码。HTML5 Test并未测试所有新加入的功能,分数高只代表浏览器现时对所挑选的新网页编码整体上有较佳的支持,并不代表日后其表现的趋势,因此分数只能作为参考。
截至2018年7月15日,五大浏览器最新版本所获取的分数分别是:
浏览器 | 正式版本 | 分数 | 其他版本 | 分数 |
---|---|---|---|---|
Google Chrome | 67 | 528 | 68 | 528 |
Opera | 54 | 528 | 55 | 528 |
Microsoft Edge | 17 | 492 | 18 | 496 |
Mozilla Firefox | 61 | 497 | 62 | 497 |
Apple Safari | 11.1 | 471 | 11.2 | 477 |