1.1.5 HTML5特性
下面简单介绍HTML5的特征和优势,以便提高读者自学HTML5的动力和目标。
1.兼容性
考虑到在互联网上HTML文档已经存在20多年,因此支持所有现存HTML文档是非常重要的。HTML5不是颠覆性的革新,它的核心理念就是要保持与过去技术的兼容和过渡。一旦浏览器不支持HTML5的某项功能,针对该功能的备选行为就会悄悄运行。
2.实用性
HTML5新增加的元素都是对现有网页和用户习惯进行跟踪、分析和概括而推出的。例如,Google分析了上百万的页面,从中分析出DIV标签的通用ID名称,并且发现其重复量很大,如很多开发人员使用<div id="header">标记页眉区域,为了解决实际问题,HTML5就直接添加一个<header>标签。也就是说,HTML5新增的很多元素、属性或者功能都是根据现实互联网中已经存在的各种应用进行技术精炼,而不是在实验室中进行理想化的虚构新功能。
3.效率
HTML5规范是基于用户优先的原则编写的,其宗旨是用户即上帝。这意味着,在遇到无法解决的冲突时,首先是用户,其次是页面制作者,再次是浏览器解析标准和规范制定者(如W3C、WHATWG),最后才考虑理论的纯粹性。因此,HTML5的绝大部分功能是实用的,只是在有些情况下还不够完美。例如,下面的几种代码写法在HTML5中都能被识别。
id="prohtml5" id=prohtml5 ID="prohtml5"
当然,上面几种写法比较混乱,不够严谨,但是从用户和开发的角度考虑,用户不在乎代码怎么写,开发人员根据个人习惯书写反而提高了代码的编写效率。
4.安全性
为保证足够安全,HTML5引入了一种新的基于来源的安全模型,该模型不仅易用,而且对各种不同的API都通用。这个安全模型不需要借助于任何所谓聪明、有创意却不安全的hack就能跨域进行安全对话。
5.分离
在清晰分离表现与内容方面,HTML5迈出了很大的步伐。HTML5在所有可能的地方都努力进行分离,包括HTML和CSS。实际上,HTML5规范已经不支持旧版本HTML的大部分表现功能。
6.简化
HTML5要的就是简单,避免不必要的复杂性。HTML5的口号是:简单至上,尽可能简化。因此,HTML5做了以下改进。
以浏览器原生能力替代复杂的JavaScript代码。
简化的DOCTYPE。
简化的字符集声明。
简单而强大的HTML5 API。
7.通用性
通用访问的原则可以分成三个概念。
可访问性。出于对残障用户的考虑,HTML5与WAI(Web可访问性倡议)和ARIA(可访问的富Internet应用)做到了紧密结合,WAI-ARIA中以屏幕阅读器为基础的元素已经被添加到HTML中。
媒体中立。如果可能的话,HTML5的功能在所有不同的设备和平台上应该都能正常运行。
支持所有语种。如新的<ruby>元素支持在东亚页面排版中会用到的Ruby注释。
8.无插件
在传统Web应用中,很多功能只能通过插件或者复杂的hack实现,但在HTML5中提供了对这些功能的原生支持。插件的方式存在以下问题。
插件安装可能失败。
插件可以被禁用或屏蔽,如Flash插件。
插件自身会成为被攻击的对象。
因为插件边界、剪裁和透明度的问题,插件不容易与HTML文档的其他部分集成。
以HTML5中的canvas元素为例,有很多非常底层的操作以前是没办法做到的,如在HTML4的页面中就很难画出对角线,而有了canvas就可以很轻易地实现了。基于HTML5的各类API的优秀设计,可以轻松地对它们进行组合应用。例如,从video元素中抓取的帧可以显示在canvas里面,用户单击canvas即可播放这帧对应的视频文件。
最后,用万维网联盟创始人Tim Berners-Lee的评论来小结:“今天,我们想做的事情已经不再是通过浏览器观看视频或收听音频,或者在一部手机上运行浏览器。我们希望通过不同的设备,在任何地方,都能够共享照片、网上购物、阅读新闻,以及查找信息。虽然大多数用户对HTML5和开放Web平台(Open Web Platform, OWP)并不熟悉,但是它们正在不断改进用户体验。”