您的位置:知识库 » Web前端

从HTML 2.0到HTML5

作者: 李松峰  发布时间: 2010-10-13 19:48  阅读: 3463 次  推荐: 2   原文链接   [收藏]  
摘要:HTML是World Wide Web上统一的语言。使用它所提供的标签,人类已经创建了令人惊奇、姿态万千的超链接的文档网络。HTML5是这门通用语言的最新版。HTML5并不是一门凭空造出来的新语言。它的标记变化都是革新性的,不是革命性的。无论你现在使用哪个版本的HTML创建网站,你都可以说自己已经在使用HTML5了。

  英文原文:A Brief History of Markup

  A Book Apart 的第一本书,由Jeremy Keith执笔;本文是该书第1章。

  HTML是World Wide Web上统一的语言。使用它所提供的标签,人类已经创建了令人惊奇、姿态万千的超链接的文档网络。看看AmazoneBayWikipedia,再看看个人博客和专为猫咪建立的站点,无一不是HTML的杰作。

  HTML5是这门通用语言的最新版。虽然这次升级的变化之大史无前例,但HTML更新换代已经不是第一次了。这门语言从诞生之日起一直在发展。

  在发明Web的同时,Tim Berners-Lee先生创造了HTML(HyperText Markup Language,超文本标记语言)。

  1991年,他写了一篇名为“HTML Tags”的文档另见更早的www-talk上的记录),其中建议人们使用20来个元素编写网页。

  说到用尖括号包围文本的标签,并不是Tim先生的首创。更早的SGML(Standard Generalized Markup Language,标准通用标记语言)中就开始使用这种标签了。Tim先生当时并没有发明新语言,而是着眼于利用已经存在的技术——在HTML5的发展过程中,这个倾向依然得到了体现。

  从IETF到W3C:HTML 4诞生记

  HTML 1?这个版本实际上是不存在的。最早的HTML官方规范,是由IETF(Internet Engineering Task Force,因特网工程任务组)发布的HTML 2.0。这一规范中的许多特性,都是在已有实现的基础上归纳总结出来的。比如说,1994年居于市场领导地位的Mosaic浏览器提供了一个<img>标签,作者可以通过它在自己的文档中嵌入图像。后来,img元素就出现在了HTML 2.0中。

  W3C(World Wide Web Consortium,万维网联盟)继IETF之后成为HTML后续标准的制定者,其官方网站是http://www.w3.org。20世纪90年代中期以后,W3C对HTML进行了几次升级,直至1999年发布HTML 4.01

  此时,HTML的发展走到了一个十字路口上。

  XHTML 1:符合XML标准的HTML

  HMLT 4.01之后的一个修订版变成了XHTML 1.0。其中,X表示“eXtreme”(极端)。当时的Web开发人员在提到这个字母的时候,必须双臂交叉,作出一个X的形状来。

  谁说的?纯属瞎掰。那个X表示的是“eXtensible”(可扩展),而且也没人要求你必须双臂交叉。

  XHTML 1.0规范的内容与HTML 4.01完全相同,没有添加任何新元素或新属性。这两个规范唯一的差别就是对HTML的语法作出了不同的规定。HTML给予了作者最大的自由度,他们可以按照自己的意愿去写元素和属性,但XHTML要求作者遵从XML规则;XML是W3C大多数技术规范的基础,是一种更为严格的标记语言。

  语法规则变得更严格了,这本身没有什么坏处。新规范的目的就是让作者按照统一的风格来编写标签。此前的标签和属性可以是大写、小写,或者任意大小写字母的组合,而有效的XHTML 1.0文档则要求所有标签和属性必须一律小写。

  XHTML 1.0发布的时候恰逢浏览器普遍开始支持CSS。开发人员意识到了Web标准的出现,特别是在Web标准项目(The Web Standards Project)的倡导下,XHTML规定的这种更严格的语法被看成是写标记的“最佳实践”。

  然后,W3C发布了XHTML 1.1

  虽然XHTML 1.0只不过是用XML来重新表示的HTML,但XHTML 1.1却是真正的、纯粹的XML。这意味着不能以text/html这样的MIME类型来提供XHTML 1.1文档。可是,如果有作者以XML的MIMI类型(application/xhtml+xml)来发布文档,那么当时世界上最流行的Web浏览器——Internet Explorer,又无法呈现该文档。

  看起来W3C好像已经开始与日常的Web发布脱节了。

  XHTML 2:我们不接受!

  如果达斯汀·霍夫曼(Dustin Hoffman)在电影《毕业生》(The Graduate)中的角色是一名Web设计师,那么W3C只会对他说一句话,就一句话:XML。[1]

  W3C在接管HTML的时候,HTML的版本已经到了4。现在,他们又着手开发XHTML 2,旨在把Web引向建立在XML之上的无比光明的美好未来。

  虽然XHTML 2的名字听起来与XHTML 1非常类似,但它们的差别却非常之大。与XHTML 1不一样,XHTML 2与既有的Web内容都不兼容,甚至就连以前版本的HTML都不兼容。说白了,XHTML 2就是要成为一门纯粹的语言,与以前规范的邋遢历史没有任何干系。

  没想到竟是一场灾难。

  分裂:WHATWG TF?

  一股反抗势力在W3C内部逐步壮大。W3C热衷于从理论角度构建纯净的标准,却无视Web设计人员的需求。来自OperaAppleMozilla的代表对这种倾向非常反感。他们希望那些支持创建Web应用的特性能够得到更多的关注。

  2004年的一次工作组会议成了矛盾激化的导火索。伊恩·希克森(Ian Hickson)——当时还在Opera Software效力——建议以支持创建Web应用为目标来扩展HTML。这个建议被驳回了。

  心怀不满的反抗者建立了自己的组织:Web Hypertext Application Technology Working Group(Web超文本应用技术工作组),简称WHATWG。

  从Web Apps 1.0到HTML5

  从一开始,WHATWG的工作方式就与W3C截然不同。W3C采取基于表决的方式:提出议题、讨论议题,然后投票表决。而在WHATWG,同样会提出和讨论议题,但哪些特性可以写入规范的最终决定权在编辑手中。这个编辑就是伊恩·希克森。

  表面上看,W3C的流程更民主也更公平。但实际上,政治博弈加上内部争论,经常会导致流程停滞不前。而在WHATWG,任何人都可以自由地发表意见,但负责拍板的则只有编辑一个人,因此工作效率明显高很多。其实编辑也并非拥有绝对的权力:一个仅由受邀人员组成的指导委员会可以质疑编辑的偏执做法。

  最初,WHATWG的大部分工作被分为两个规范:Web Form 2.0Web Apps 1.0。这两个规范都是在HTML的基础上扩展而来的。后来,这两个规范又被合并到一起,简单地称作HTML5

  再次联手

  在WHATWG开发HTML5期间,W3C继续制定XHTML 2规范。如果说XHTML 2规范的制定速度很快那是忽悠人的。实际上,别提有多慢了。

  2006年10月,Tim Berners-Lee先生发表了一篇博客,承认将Web从HTML迁移到XML是行不通的。几个月后,W3C签发了新委任状,成立了一个HTML工作组。这个工作组并没有从头开始,而是明智地决定在WHATWG工作成果的基础上开发下一个HTML版本。

  一套起步停车的动作做下来以后,局面反倒让人不理解了。W3C同时有两个工作组,分别负责制定不同的、互不兼容的标记语言XHTML 2HTML 5(注意数字5前面有一个空格)。与此同时,还有一个独立的组织——WHATWG,正在开发HTML5(没有空格)规范,而该规范还将成为上述W3C中一个规范的基础!

  每个想稿清楚上述状况的Web设计人员都会发现,还是破解电影《记忆碎片》(Memento)、《雷管》(Primer)中扑朔迷离的故事情节更容易一些,甚至就连摸清大卫·林奇(David Lynch)这样善用颠倒错乱、诡异多变的形象来迷惑人的导演的套路都没有那么复杂。

  XHTML已死,XHTML语法长生

  种种迷团终于在2009年烟消云散。W3C宣布不再续颁XHTML 2工作组的委任状。XHTML 2作为一种格式实际上已经死了好几年了;这次的宣布差不多可以看成是为它补发了一张死亡证明。

  奇怪的是,XHTML 2并没有平静地逝去,不少兴灾乐祸的小人跳出来大放厥词。XML反对者趁机奚落使用XHTML 1的人——连XHTML 1和XHTML 2几乎没有共同点这个事实都视而不见。

  这时候,那些遵照XHTML 1较为严格规则的作者又担心起来,生怕HTML5又回到支持邋遢标记的老路上去。

  其实,这个担心是多余的。HTML5允许邋邋遢遢的标记,也支持严格的标记,到底邋遢还是严格就要看编写标记的人了。

  HTML5的时间线

  HTML5目前的状态已经不似先前那么含含糊糊了,但仍然还是不甚明了。

  有两个工作组在围绕HTML5工作。WHATWG正在使用它的“提交后评审”流程创建HTML5规范。而HTML Working Group则把这个规范作为输入,并将其纳入到了自己的“评审后提交”的流程当中。不难想见,这个联盟并不和谐。最后,仍然还需要就类似“要空格还是不要空格?”这样讨厌的问题达成共识才行。

  对于刚刚涉足HTML5的Web开发人员来说,最令他们困惑的一个问题莫过于“这个规范什么时候能够完工啊?”

  在一次采访中,伊恩·希克森提到HTML5估计要等到2022年才能成为推荐标准。有些Web设计者听他这么一说,立刻就激动起来。他们并不理解所谓的“推荐标准”意味着什么,但他们知道从现在开始数到2022,自己的10个手指头根本就不够用的。

  这种激动完全是没有来由的。想一想吧,成为“推荐标准”,意味必须要有两个HTML5的完整实现。考虑到这个规范涵盖的范围之广,这个时间点恐怕都有点仓促了。历史表明,没有哪款浏览器在实现既有标准方面是做得出色的。仅仅支持一个小小的abbr元素,Internet Explorer就用了10多年的时间。

  与HTML5真正有关系的日期应该是2012年。这是它预计将会成为“候选标准”的时间。成为“候选标准”,就意味着标准的制定工作结束了。

  不过,即便是这个时间对Web开发人员来说也不是特别重要。真正重要的问题是浏览器从什么时候开始支持HTML5的特性。从浏览器一支持CSS 2.1的部分特性,我们就开始使用那些特性了。要是等到所有浏览器都完全支持CSS 2.1我们才去使用它,那么恐怕现如今我们在痴痴地等呢。

  HTML5不也一样嘛。没有人规定这个时间点,说不到这个时间你就不能使用HTML5。只要浏览器支持,我们就先使用那些它们支持的特性就不完了吗。

  切记,HTML5并不是一门凭空造出来的新语言。它的标记变化都是革新性的,不是革命性的。无论你现在使用哪个版本的HTML创建网站,你都可以说自己已经在使用HTML5了。


  [1] 男主角本杰明是一位以优异成绩毕业的大学生,其父亲的好友麦奎尔先生对他未来职业规划的建议只有一句话:塑料。——译者注

2
0
标签:HTML5

Web前端热门文章

    Web前端最新文章

      最新新闻

        热门新闻