引言
HTML5 致力于解决跨浏览器问题,可以取代部分原来要靠JavaScript实现的功能;
HTML 的发展历史“比较复杂”,因为它实在太“随意”了,而负责解析 HTML 的浏览器又太“宽容”了,以至于到了“写一份对的 HTML 文档很容易,写一份错的 HTML 文档很难”的程度。而且不同浏览器之间又存在一些差异,因此导致 HTML 文档给人的感觉比较混乱。
2008年,一项关于Alexa全球500强网站的调查表明,仅有 6.57%的网站能通过 HTML 规范验证。如果把那些名不见经传的小网站考虑在内,整个互联网上就几乎都是不符合规范的 HTML 页面。
一方面,W3C 组织“声嘶力竭”的呼吁大家应该制作遵守规范的 HTML 页面;另一方面,各种浏览器却可以正常解析、显示那些不符规范的页面,HTML 页面制作者根本不太理会这种呼吁。
现有的 HTML 页面中大量存在以下 4 种不符合规范的内容:
- 元素标签名大小写混杂:
HTML
- 元素没有结束符
- 元素中的属性,只有属性名,没有属性值:
- 属性值没有用引号:
可能是出于“存在即合理”的考虑,WHATWG组织开始制定一种“妥协式”的规范:HTML 5。既然互联网上大量存在上面 4 种不符合规范的内容,而且制作者从来也不打算修改这些页面,因此 HTML 5 干脆承认它们是符合规范的。换句话说,HTML 5 是规范制定者对现实的妥协。
HTML 5 的优势
- 解决跨浏览器问题;
- 部分代替了原来的JavaScript:
document.getElementById("price").focus();
< input type="text" autofocus name="price" >
- 更明确的语义支持:
- 在 HTML 5 以前,如果要表达一个文档结构,可能只能通过 div 元素来实现:
- ... < /div >