本节我们开始介绍HTML 5技术的内容,看一看HTML 5的发展历史及其与XHTML技术的比较。
W3C是一个纯粹为了标准化而存在的非营利性组织,可是它也太过于纯粹而忽略了各大浏览器厂商的利益。在两年多交涉未果的情况下,来自苹果、Mozilla基金会以及Opera软件等的浏览器厂商于2004年成立了WHATWG(Web Hypertext Application Technology Working Group,网页超文本技术工作小组)。不难理解,他们意图回到超文本标记语言HTML上来。此时的苹果刚刚成立Safari浏览器团队不久,可见老乔当年的战略眼光。
WHATWG动作很快,因为他们都是战斗在第一线的浏览器厂商,成立后不久就提出了作为HTML 5草案前身的Web Applications 1.0,那时HTML 5还没有被正式提出。
WHATWG致力于Web表单和应用程序,而W3C专注于XHTML 2.0。看着自己被冷落的W3C在2006年10月决定停止XHTML的工作并与WHATWG合作,双方决定共同创建一个新版本的HTML,并为其建立一些规则:
2007年,苹果、Mozilla基金会以及Opera软件建议W3C接受WHATWG的HTML 5,正式提出将新版HTML标准定义为HTML 5。于是HTML 5就正式和大家见面了。
随着浏览器JavaScript引擎大幅提速,人们对HTML 5的预期逐步提高,但那时的HTML 5并没有真正给人们更多的惊喜。随着Flashplayer被曝出漏洞、安全、性能之类的负面新闻,人们对HTML 5的关注度又大幅升高。
2007年到2010年,众人在对HTML 5失落和期待反复交替的日子中度过。
2010年1月,YouTube开始提供HTML 5视频播放器。
2010年8月,Google联合Arcade Fire推出了一个HTML 5互动电影:The Wilderness Downtown,此项目由著名作家兼导演Chris Milk创作。之所以叫作互动电影,是因为在开始时电影会问你小时候家住在哪里,而随后的电影剧情将在这里展开。电影使用Arcade Fire专辑《The Suburbs》中的We Used to Wait作为主题音乐。发布一年后,该电影在戛纳广告大奖赛中获得了网络组别的奖项。
2010年4月,乔帮主发表公开信“Flash之我见”。引发Flash和HTML 5阵营之间的空前口水仗,也刺激了浏览器厂商。
2012年1月10日在拉斯维加斯正在举行的CES大会上,微软CEO鲍尔默宣布了基于IE 9和HTML 5版的割绳子游戏,这是由微软及游戏开发商ZeptoLab共同推出的,用于促进IE 9的使用以及网页的美化。
虽然HTML 5也在卖力地表现,但是面对Flash的诸多漏洞、HTML 5的迟迟难产,急性的WHATWG和W3C最终还是割席分家了。
2012年7月,WHATWG工作人员在公告中写道:“近来,WHATWG和W3C在HTML 5标准上的分歧越来越大。WHATWG专注于发展标准的HTML 5格式及相关技术,并不断地修正标准中的错误;而W3C则想根据自己的开发进程制作出“标准版”HTML 5标准,颁布之后不容许更改,错误也无法修正,所以我们决定各自研发。”
这样的巨变就像王老吉和加多宝一样,不解释,只是从此意味着将会有两个版本的HTML 5——“标准版”和“living版(见图1.2)”。
图1.2 WHATWG维护的living版HTML 5
接着W3C提出的规划是:到2014年底,HTML 5将成为一种完整的成品标准。W3C还计划到2016年底发布后续版本HTML 5.1。
任何设计都有设计理念,HTML 5也有一些:
存在即合理,历史上还有相当多的老版HTML文档,而且不能抛弃。化繁为简是HTML 5最实用的改良,无插件设计让互通性大为增强,支持所有语种让地球村访问变得如串门一般简单。
(1)文档声明简化。
<!--XHTML中这样写:--> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <!--HTML 5中这样写:--> <!DOCTYPE html>
(2)html标签上不需要声明命名空间。
<!--XHTML中这样写:--> <html xmlns="http://www.w3.org/1999/xhtml" lang="zh-CN"> <!--HTML 5中这样写:--> <html lang="zh-CN">
(3)字符集编码声明简化。
<!--XHTML中这样写:--> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <!--HTML 5中这样写:--> <meta charset="UTF-8" />
(4)style和script标签type属性简化。
<!--XHTML中这样写:--> <script type="text/javascript"></script> <style type="text/css"></style> <!--HTML 5中这样写:--> <script></script> <style></style>
(5)link标签连接ICON图片时可指定尺寸。
<!--XHTML中这样写:--> <link rel="shortcut icon" href="http://z3f.me/favicon.ico" type="image/x-icon" /> <!--HTML 5中这样写:--> <link rel="icon" href="http://z3f.me/favicon.gif" type="image/gif" sizes="16x16" />
除此以外,HTML 5没有XHTML那样严格要求标签闭合问题。对XHTML不建议使用的b和i等标签进行重定义,使其拥有语义特征。