技术头条 - 一个快速在微博传播文章的方式     搜索本站
您现在的位置首页 --> CSS/HTML --> 从HTML 2.0到HTML5

从HTML 2.0到HTML5

浏览:2777次  出处信息

原文链接:A Brief History of Markup
2010年9月23日校毕

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

建议继续学习:

  1. HTML5 离线缓存-manifest简介    (阅读:16012)
  2. 面向移动设备的HTML5开发框架梳理    (阅读:5757)
  3. JavaScript,只有你想不到    (阅读:4947)
  4. HTML5本地存储初探(二)    (阅读:4329)
  5. Phonegap + HTML5 开发经验小结    (阅读:4024)
  6. Ruby 解析 HTML (Nokogiri)    (阅读:3862)
  7. HTML5是什么东东 我们为什么要关注    (阅读:3801)
  8. HTML页面布局基础    (阅读:3573)
  9. HTML6 初探 — 你没看错,是6不是5    (阅读:3560)
  10. HTML5文件API之图片预览    (阅读:3552)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
© 2009 - 2024 by blogread.cn 微博:@IT技术博客大学习

京ICP备15002552号-1