
7.1 什么是HTML5
图7-1是HTML5华丽的LOGO,虽然官方说它只是一系列技术的图标,没有特殊意义,但是笔者更希望它能够成为互联网发展最坚实的后盾,用时下一个流行的词语解释——可称之为“V5”。

图7-1 HTML5的LOGO
7.1.1 差点夭折的HTML5
现在大家都知道ECMA维护着JavaScript的标准,W3C维护着Web中常见的标准,如CSS、DOM、HTML、XML、XHTML、SVG等。W3C目前也负责指定HTML5标准,只是鲜为人知的是W3C并不是一开始就主导制定HTML5,也并不是唯一制定HTML5标准的组织。
在Web发展早期,HTML标准的制定都是在浏览器厂商们相互协商下产生的,比如HTML2.0、HTML3.2到HTML4.0、HTML4.01。即先有实现后有标准,在这种情况下,这些协商出来的HTML标准不是很规范,而浏览器厂商也心知肚明,对于很多含有错误HTML代码的页面也相当宽容,其中IE就是典型的例子。
W3C随后意识到了这个问题,为了规范HTML, W3C结合XML制定了XHTML1.0标准,这个标准没有增加任何新的tag,只是按照XML的要求来规范HTML,同时也带来了不同的DOCTYPE模式。
● 严格模式:<! DOCTYPE html PUBLIC "-//W3C//DTD XHTML1.0 Strict//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">。
● 过渡模式:<! DOCTYPE html PUBLIC "-//W3C//DTD XHTML1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">。
● 框架模式:<! DOCTYPE html PUBLIC "-//W3C//DTD XHTML1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">。
笔者也曾被严格模式坑苦过,一直用得好好的HTML代码,为什么变得乱七八糟?后来才发现以前没有约束的陋习放到严格模式下就会出现异常。也因为如此,这个规范一度被业界所诟病,只是善良的劳动者们逐步习惯了被约束的日子。
W3C后来又制定出更为苛刻的XHTML1.1以及尚未完成的XHTML2.0,况且W3C在后续版本中并没有打算对早期版本向后兼容,或许因此XHTML至今的名声不再依旧。
随着XHTML1.1在2001年5月成为W3C推荐标准之后,W3C便走上了XHTML之路。而HTML5在当时的W3C脑海中是完全没有影子的事情。
7.1.2 HTML5的前世今生
那么为何HTML5现今又如此辉煌呢?答案是利益。W3C是一个纯粹为了标准化而存在的非营利性组织,可是它也太过于纯粹而忽略了各大浏览器厂商的利益。双方在两年多的时间里交涉未果的情况下,来自苹果、Mozilla基金会以及Opera软件等浏览器厂商于2004年成立了WHATWG(Web Hypertext Application Technology Working Group),意为网页超文本技术工作小组。不难理解,他们意图回到超文本标记语言HTML上来。此时的苹果公司刚刚成立Safari浏览器团队不久,可见老乔当年的战略眼光。
WHATWG动作很快,因为他们都是战斗在第一线的浏览器厂商,成立后不久就提出了作为HTML5草案前身的Web Applications 1.0,那时候HTML5还没有被正式提出。
WHATWG致力于Web表单和应用程序,而W3C专注于XHTML2.0。看着自己被冷落的W3C在2006年10月决定停止XHTML的工作并与WHATWG合作,来创建一个新版本的HTML,并为其建立一些规则:
● 新特性应该基于HTML、CSS、DOM以及JavaScript。
● 减少对外部插件的需求(比如Flash)。
● 更优秀的错误处理。
● 更多取代脚本的标记。
● HTML应该独立于设备。
● 开发进程应对公众透明。
2007年,苹果、Mozilla基金会以及Opera软件建议W3C接受WHATWG的HTML5,正式提出将新版HTML标准定义为HTML5。于是HTML5正式和大家见面了。
随着浏览器JavaScript引擎大幅提速,以及人们对HTML5预期逐步提高,JavaScript的流行度出现了显著的上升。但那时的HTML5并没有给人们更多的惊喜。随着每一次Flashplayer爆出漏洞、安全、性能之类的负面新闻,人们对HTML5的关注度又一次大幅升高。
2007年到2010年,众人在对HTML5失落和期待反复交替的日子中度过。
2010年1月,YouTube开始提供HTML5视频播放器。
2010年8月,Google联合Arcade Fire推出了一个HTML5互动电影—The Wilderness Downtown,此项目由著名作家兼导演Chris Milk创作。之所以叫作互动电影,是因为在开始时电影会问你小时候家住在哪里,而随后的电影剧情将在这里展开。电影使用Arcade Fire刚刚推出的新专辑The Suburbs中的We Used to Wait作为主题音乐。一年后,该电影在戛纳广告大奖赛中获得了网络组别的奖项。
2010年4月,乔布斯发表公开信“Flash之我见”。引发Flash和HTML5阵营之间的空前口水仗,也刺激了浏览器厂商。
2012年1月10日在拉斯维加斯正在举行的CES大会上,微软CEO鲍尔默宣布了基于IE 9和HTML5版的割绳子游戏,它由微软及游戏开发商ZeptoLab共同推出,用于促进IE 9的使用及网页的美化。
虽然HTML5也在卖力地表现,但是面对Flash的诸多漏洞,而HTML5又迟迟难产,急性子的WHATWG和W3C最终还是割席分家了。
2012年7月,WHATWG工作人员在公告中写道:“近来,WHATWG和W3C在HTML5标准上的分歧越来越大。WHATWG专注于发展标准的HTML5格式及相关技术,并不断地修正标准中的错误。而W3C则想根据自己的开发进程制作出‘标准版’HTML5标准,颁布之后不容许更改,错误也无法修正,所以我们决定各自研发。”
这样的巨变就像王老吉和加多宝一样,从此意味着将会有两个版本的HTML5——即“标准版”和“living版(如图7-2所示)”。

图7-2 WHATWG维护的living版HTML5
2014年10月29日,万维网联盟宣布,经过接近8年的艰苦努力,HTML5标准规范终于制定完成。
差点夭折的HTML5又经历如此多的坎坷,未来到底如何,只有拭目以待。
7.1.3 HTML5理念
HTML5的设计理念如下:
● 兼容性
● 实用性
● 互通性
● 访问性
存在即合理,历史上还是有相当多的老版HTML文档不能抛弃。化繁为简是HTML5最实用的改良,无插件设计让互通性大为增强,支持所有语种让地球村访问变得如串门一般简单。