文章内容
HTML5是HTML4.01和XHTML1.0之后超文本标记语言的最新版本,由一群自由思想者设计,最终实现了多媒体支持、交互性、更智能的表单和更好的语义标注。
HTML 5不只是 HTML规范的最新版本,它是用于生成现代 Web内容的一系列相关技术的总称,其中最重要的三个技术是:HTML5核心规范(table)、 CSS (class style)和 JavaScript。
一、HTML5的历史
HTML在1993年第一次作为互联网草稿发布,随后经历了2.0、3.2和4.0,直到1999年 HTML4.01版本稳定下来。慢慢地,随着发展,越来越严格的 XHTML取代了它。
1、XHTML的兴衰史
自发布了 HTML4.01版以来,万维网联盟(W3C)掌握了 HTML规范,但该组织并未发布新标准,而是致力于 XHTML1.0,以及之后的 XHTML2.0。XHTML是基于 XML的 HTML版本,它致力于实现更严格和统一的编码规范,解决了以前的 HTML4.01版本中由于编码不规范而导致浏览器出现的各种奇怪行为。因此, Web开发人员非常支持 XHTML。XHTML最大的优点,就是迫使开发人员养成良好的编码习惯,摒弃混乱的 HTML书写,最终减少浏览器解析页面的困难,方便移植到其他平台。
然而,越想往好的方面发展,往往就会带来灾难性的后果,世界上的一切都是如此。XHTML2.0规定了更严格的错误处理规则,规定浏览器必须拒绝无效的XHTML2页面,强制 Web开发人员在不向下兼容、不改变 HTML遗留下来的奇怪行为和编码习惯的情况下编写绝对正确的代码。按道理,取其精华,去其糟粕应该是件好事。但如果这样的话,上亿个页面将不能兼容, Web开发人员的难度又增加了,而制定这一标准又太久,最终将被抛弃。
2、HTML5的回归
W3C在2008年发布了HTML5的工作草案,XHTML2预定在2009年终止。在大约一年的时间里,HTML5规范进一步解决了很多实际问题,各大浏览器厂商开始升级产品支持HTML5。因此,浏览器的实验反馈,HTML5规范得到了不断的改进和完善,并很快融入到Web平台的实质性改进中。
和XHTML2.0不同的是,开发HTML5规范的团队不会为了弥补以前 HTML的种种缺陷而去纠正它,而是尽可能地弥补 Web开发人员所需要的各种功能。其中包括更强大的CSS3,表单验证,音频视频,本地存储,地理定位,画作(画布),网络通讯等等。
二、HTML5的功能
HTML5涵盖了哪些功能?主流浏览器是如何支持这些功能的?
1、HTML5核心
该部分主要组成为W3C官方规范,包括新的语义元素,新的增强的 Web表单,音频和视频,以及 JavaScript绘制的画布。大部分主流浏览器都对此有良好的支持;
2、曾经的HTML5标准
这部分主要来源于原HTML5规范,大部分都需要JavaScript,支持Web应用开发。例如:本地数据存储、离线应用、消息传输;
3、非HTML5标准
这部分通常指的是下一代功能。虽然从未进入HTML5标准,但人们还是会把它当作HTML5的一部分。这些包括最常见的CSS3,以及非常受欢迎的地理位置。
对于最为常用且实用的部分,基本上主流的浏览器都支持的比较好。而那些特殊需求的部分,则需要根据不同的浏览器检测才能知道是否支持自己想要的功能。
三、HTML5的特点
在 HTML5 发展的同时,XHTML2.0 也在不断发展,那么到底是哪些特点导致 HTML5 取得最终的胜利呢?
1、向下兼容
对 XHTML2.0来说,需要遵循规则,否则不能显示,而HTML5则奉行“不破坏 Web”的原则。这就是说,以前存在的网页,仍然能够保持正确的显示。
HTML5规范当然是面向开发者,要求抛弃过去那些编码的坏习惯和废弃的标签元素;面向浏览器厂商,要求他们兼容 HTML遗留下来的所有东西,从而实现向下兼容。
2、用户至上
HTML5遵循“用户至上”的原则,当出现具体问题时,首先考虑用户,其次考虑开发人员,然后再考虑浏览器厂商,最后才考虑制定规范。
例如,开发者在编写代码时不严谨,导致本应出现警告或错误,但页面却正常显示。
3、化繁为简
HTML5 对比之前的XHTML,做了大量的简化工作。具体如下:
- 替换复杂的JavaScript具有浏览器的原生能力;
- DOCTYPE 被简化到极致;
- 字符集声明被简化;
- 简单强大的 API。
4、无插件范式
在HTML5出现之前,很多功能只能通过插件或者hack(比如画图API)来实现,但是HTML5本身就提供了这些支持。
使用插件有许多问题,如下所示:
- 插件安装容易失败;
- 插件被浏览器或软件禁用屏蔽(如 Flash 插件);
- 插件经常会被爆出漏洞被利用攻击;
- 插件不容易与 HTML 文档其他部分集成(比如整体透明化等)。
5、访问通用性
这个原则分为三个概念:
- 可访问性:比如更加利于残障人士的阅读方案;
- 媒体中立:比如 HTML5 的媒体播放在不同设备或平台均能正常运行;
- 支持所有语种:比如新元素。
6、引入语义
HTML5引入一些标签元素来区分不同的意思和内容。该方法大大提高了代码编写者的可读性,并且便于代码区域查询。
7、引入原生媒体支持
HTML5的一个重大改进就是支持直接在浏览器中播放视频和音频文件,而这类功能之前都需要借助插件来实现。
8、引入可编程内容
HTML5 最大的变化就是引入了需要通过 JavaScript 编程才能完全的各种效果,而这些很多都是 HTML5 原生的。那么现在 HTML5 可以理解为 HTML + CSS + JavaScript + API 的总称。