1.2 HTML发展史与HTML5
1.2.1 HTML的发展历史
HTML的历史可以追溯到很久以前。1993年,HTML首次以互联网草案的形式发布。20世纪90年代的人见证了HTML的高速发展,从2.0版,到3.2版和4.0版,再到1999年的4.01版。随着HTML的发展,W3C(万维网联盟)掌握了对HTML规范的控制权。
然而,在快速发布了这4个版本之后,业界普遍认为HTML已经“无路可走”了,对Web标准的焦点也开始转移到了XML和XHTML上,HTML则被放在了次要位置。不过在此期间,HTML体现了顽强的生命力,主要的网站内容还是基于HTML的。为能支持新的Web应用,同时克服现有的缺点,HTML迫切需要添加新功能,制定新规范。
致力于将Web平台提升到一个新的高度,一小组人在2004年成立了WHATWG(Web Hypertext Application Technology Working Group,Web超文本应用技术工作组)。他们创立了HTML5规范,同时开始专门针对Web应用开发新功能——这被WHATWG认为是HTML中最薄弱的环节。Web2.0这个新词也就是在那个时候被发明的。Web2.0实至名归,开创了Web的第二个时代,旧的静态网站逐渐让位于需要更多特性的动态网站和社交网站——这其中的新功能真的是数不胜数。
2006年,W3C又重新介入HTML,并于2008年发布了HTML5的工作草案。2009年,XHTML2工作组停止工作。因为HTML5能解决非常实际的问题,所以在规范还没有具体定下来的情况下,各大浏览器厂家就已经按捺不住了,开始对旗下产品进行升级以支持HTML5的新功能。这样,得益于浏览器的实验性反馈,HTML5规范也得到了持续地完善,HTML5以这种方式迅速融入到了对Web平台的实质性改进中。
1.2.2 HTML 4.01和XHTML
XHTML的全称是(Extensible Hyper Text Markup Language,扩展的超文本标记语言), XHTML和HTML 4.01具有很好的兼容性,而且XHTML是更严格、更纯净的HTML代码。
在早期的HTML发展历史中,由于HTML从未执行严格的规范,而且各浏览器对各种错误的HTML极为宽容,这就导致了HTML显得极为混乱。所以W3C组织制定了XHTML,它的目标是逐步取代原有的HTML。简单地说,XHTML就是最新版本的HTML规范。
我们习惯上认为HTML也是一种结构化文档,但实际上HTML的语法非常自由,再加上各浏览器对各种HTML错误的宽容,所以才有如下HTML代码。
<html> <head> <title>混乱的HTML文档</title> <body> <hl>混乱的HTML文档
上面代码中的<html>、<head>、<body>和<h1> 4个标签都没有正确结束,这显然违背了结构化文档的规则,但使用浏览器来浏览这个文档时,依然可以看到浏览效果,这就是HTML不规范的地方。而XHTML致力于消除这种不规范,XHTML要求HTML文档首先必须是一份XML文档。
XML文档是一种结构化文档,它有如下4条基本规则:
整个文档有且仅有一个根元素。
每个元素都由开始标签和结束标签组成(例如<a>和</a>就是开始标签和结束标签),除非使用空元素语法(例如<br/>就是空元素语法)。
元素与元素之间应该合理嵌套。例如<a><b>HTML5从入门到精通</b></a>,可以很明确地看出<b>元素是<a>元素的子元素,这就是合理嵌套;但<a><b> HTML5从入门到精通</a></b>这种写法就比较混乱,也就是所谓的不合理嵌套。
元素的属性必须有属性值,而且属性值应该用引号(单引号或双引号)引起来。
通常,计算机里的浏览器可以应对各种不规范的HTML文档,但现在很多浏览器运行在移动电话和手持设备上,它们就没有能力来处理那些不规范的标记语言。
为此,W3C建议使用XML规范来约束HTML文档,将HTML和XML的长处加以结合,从而得到现在和未来都能使用的标记语言——XHTML。
XHTML可以被所有支持XML的设备读取,在其余的浏览器升级至支持XML之前,XHTML强制HTML文档具有更加良好的结构,保证这些文档可以被所有的浏览器解释。
1.2.3 从XHTML到HTML5
虽然W3C努力为HTML制订规范,但由于绝大部分编写HTML页面的人并没有接受过专业训练,他们对HTML规范、XHTML规范也不是很了解,所以他们制作的HTML网页绝大部分都没有遵守HTML规范。大量调查表明,即使在一些比较正规的网站中,也很少有网站能通过验证。例如在2008年,一项关于Alexa全球500强网站的调查表明,仅有6.57%的网站能通过HTML规范验证。如果把那些名不见经传的小网站考虑在内,整个互联网上就几乎都是不符合规范的HTML页面。
虽然互联网上绝大部分HTML页面都是不符合规范的,但各种浏览器却可以正常解析并显示这些页面,在这样的情况下,HTML页面的设计制作者甚至感觉不到遵守HTML规范的意义。于是出现了一种非常尴尬的局面:一方面,W3C组织极力地呼吁大家应该制作遵守规范的HTML页面;另一方面,HTML页面制作者却根本不太理会这种呼吁。
现有的HTML页面大量存在如下4种不符合规范的内容:
元素的标签名大小写混杂。如<p>HTML5</P>,这个<p>元素的开始标签和结束标签采用了大小写不匹配的字符。
元素没有合理结束。如只有<p>标签,没有</p>结束标签。
元素中使用了属性,但没有指定属性值。如<input type="text" disabled>。
为元素的属性指定属性值时没有使用引号。如<input type=text>。
可能是出于“存在即是合理”的考虑,WHATWG组织开始制订一种“妥协式”的规范:HTML5。既然互联网上大量存在上面4种不符合规范的内容,而且制作者从来也不打算改进这些页面,因此HTML5干脆承认它们是符合规范的。
由于HTML5规范不严格,因此它甚至不再提供文档类型定义(DTD)。到2008年,WHATWG的努力终于被W3C认可,W3C已经制订了HTML5草案。
虽然直到目前为止,W3C依然没有正式发布HTML5规范,但大量浏览器厂商和市场都已经开始承认HTML5, Google在很多地方都开始使用HTML5。