
有什么新特色?
W3C提供了一篇文章介绍HTML5和HTML4的不同之处,这项工作主要由AnnevanKesteren负责。这篇介绍除了列出增加或弃用的元素及属性外,还包括了一些API的改变,以及HTML5规范的变更记录。变更记录按时间顺序记录了一些特性是何时,以及如何成为规范的一部分或被舍弃的。链接如下:http://www.w3.org/TR/html5-diff/。
这篇介绍包含了许多细节,但并没有从整体上对HTML5作出一个清晰的概述,因此我们将采用4个词图来指引读者阅读这一章。这4个词图都根据JonathanFeinberg的词图程序(wordleapplet)制作,大家可以在http://www.wordle.net上免费获取。词图中字体大小表明相关新元素及新属性的使用频率,以其在HTML5规范中出现的次数作为参考。弃用的元素及属性单词字体大小表明其在线上的使用频率,数据来自Opera的MAMA项目“网络是用什么构成的?”(WhatistheWebmadeof)(http://dev.opera.com/articles/view/mama)让我们先看看词图(见图)里的新元素。比较醒目的元素无疑有视频(video)、音频(audio),以及画布(canvas)-这个特性可以通过JavaScript在网页上绘图。许多新元素都和网页结构有关,例如article、section、header、hgroup、footer、nav以及aside。你可以使用figure元素为图形添加描述,用s_aiy添加或隐藏额外的信息。你还可以使用progress、meter或time与date来分别描述进度、刻度及时间。
在英语国家中使用ruby、rt或rp的频率并不是很高:它们主要应用于中文或日文国家,用于显示特定语言的注音或字符注释。对于英语国家来说mark和wbr更有用,mark用作突出段落,而wbr作为换行符。
还有一些元素与网络应用程序相关,举例来说,keygen成对生成密钥用于数字签名,command用作命令执行,
宁波网站建设认为output用作输出表单或文档特定部分的计算结果。datalist用作选项容器,为表单提供隐含的选项列表。source用于嵌入视频或音频元素,而浏览器会从这些选项中选择第一种可选格式来播放文件。最后的这个元素也很重要一embed,它是由Netscape提供的兼容方案,同样用于视频或音频嵌人播放。
input元素同样有了许多改进。这里对新增的类型(types)做一个简单列举:现在可以用日期-时间(date-time)、日期(date)、月份(month)、星期(week)、时间(time)、本地时间(datetime-local)这些类型来指定input的格式。类似的还有用search对应搜索,用url对应链接地址,用email来对应电子邮件地址,tel对应电话号码,number对应数字,mnge对应指定范围的数字,或是用color来对应RGB颜色。如图所示,许多新属性都与表单有关。感谢这些新的表单属性,我们终于可以把表单定义成梦寐以求的样式。min、max、step、required、pattern、multiple以及autocomplete这一类属性提供了输入内容的条件或限制,还可以进而使用formnovalidate和novalidate来检査数据的有效性,而placeholdei或autofocus则可以辅助进行表单填写。无论表单如何提交,都还可以用input元素自带的formmethod、formenctype、formtarget、formaction属性覆盖表单自身的method、enctype、target、action属性。list属性则可以配合datelis标签为input元素生成下拉菜单。
sandbox、srcdoc以及seamless为iframes提供安全功能,它们可以将嵌入的内容与父页面隔离开来。如需异步加载脚本,你可以使用async。ping属性可以指定一个URL列表,当用户单击一个相应的链接时,ping会自动以后台方式向指定URL列表发送通知。
HTML元素的manifest属性看上去并不引人注意,但它有着重要的作用:依靠配置文件指定出页面在离线时还可以正常工作的部分,它能为离线Web应用程序提供支持。为style元素新增的scoped属性也很有用,它能够将style样式的作用范围限制在style元素的DOM父元素及其子元素之内。对于menu元素,type可以定义定菜单类型(例如context或者toolbar),label则为其定义一个可见的标注。
还有一些细小的改良,包括:用charset属性在meta标签中简单的指定页面编码,用value属性为li元素精确指定值的个数,用start属性为01指定开始序数,用reversed属性将有序列表设置为倒序。
值得注意的是,一些全局通用属性发生了微小变化。class、dir、id、lang、style、tabindex以及title这类属性与HTML4中依旧-样,发生变化的主要是那些新增的属性。如今你可以通过contenteditable直接编辑元素,contextmenu让你能够用menu定义制定菜单,draggable将相关元素标记成备选拖曳元素,spellcheck能够检査出拼写错误。
不相关的内容可以被隐藏
新的API编程是HTML5的另一个重要组成部分,例如画布API、视频音频播放API、离线应用界面。此外,还有许多诸如主题拖曳、文档编辑、浏览器历史管理的API。HTML5规范里甚至还包括一些很特别的API——它们让你能够注册和申请自己的通信协议和MIME类型。
需要注意的是,HTML5中所有的事件句柄都属于全局属性,用于操作HTMLDocument和HTMLElement对象。你可以使用getElementsByClassName()找出特定class属性的所有元素,也可以用classListAPI操作class属性,还可以在XML文档中使用innerHTML方法。你可以使用activeElement以及hasFocus-这两者都是HTMLDocument对象属性——来确定文档中的当前焦点,这类似于使用getSelection()方法来返回当前选定的对象。
本文由乐华网络编辑,转载请注明出处
宁波网站建设www.leseo.net