原文地址:http://realazy.org/blog/2007/08/10/new-elements-in-html-5/
在本人看来,HTML 5是一个妥协方案,虽不激进,但更能推动技术的继续进步。没有命名空间,元素也不要求闭合(当然这并不是优点),浏览器也可以宽大处理一些错误。一切沿袭上个世纪HTML 4的做法。对于HTML的渲染,浏览器一直停留在1999年的水平。为此,HTML 5是一个实用主义方案,这样不仅可以继续处理这么多年来散落在世界各个角落的HTML,也可以让浏览器厂商更容易添加新特性。这就叫degrade gracefully(优雅降级)。让我们来看看HTML 5增加的一些新元素。
结构元素
这真是大快人心。目前,我们定义结构只能通过一个“万能”的div
, 试图通过设置它的特性id
的值如header, footer, sidebar等来分别表达头部,底部或者侧栏等。有了它们,代码编写者不再需要为id
的命名费尽心思,对于手机、阅读器等设备更有语义的好处。HTML 5增加了新的结构元素来表达这些最常用的结构:
-
section
: 这可以表达书本的一部分或一章,或者一章内的一节 -
header
: 页面主体上的头部。并非head
元素 -
footer
: 页面的底部(页脚),可以是一封邮件签名的所在 -
nav
: 到其他页面的链接集合 -
article
: 诸如blog, 杂志,纲要等之中的一条独立记录。
举个例子,一个blog的首页,用HTML 5写的话,可以是这样(有省略):
块级block
的语义元素
HTML还增加以下三个块级元素:
-
aside
-
figure/code>
-
dialog
aside
可以用以表达注记、贴士、侧栏、摘要、插入的引用等诸如作为补充主体的内容。比如这样表达blog的侧栏:
figure
元素表示一个有说明的块级图片。比如:
dialog
元素用于表达人们之间的对话。在HTML 5中,
dt
用于表示说话者,而dd
则用来表示说话者的内容。如:
行内(inline)的语义元素
m
元素用来标记一些不是那么需要着重强调的文本。现在尚有争议,可能最终会改为mark
.
time
元素如其名,用来表达时间。它需要一个datetime
的特性来标明机器能够认识的时间,如:
meter
元素表达特定范围内的数值。可用于薪水、百分比、分数等。比如:
它还有6个特性来表达各方面的含义,比如:
还有一个progress
,也是义如其名,用以表达进度:
嵌入多媒体
新增video
和audio
元素。顾名思义,分别是用来插入视频和声音的。至于格式,交由浏览器实现,HTML再也不需要特别的代码去播放特定的格式。就像img
一样,不管是png, jpg还是gif都可以显示。值得注意的是,它们可以包含内容。比如,可以把歌词放到某段歌曲中去:
交互性
HTML 5同时也叫Web Applications 1.0, 因此也进一步发展交互能力。这些标签就是为提高页面的交互体验而生:
-
details
-
datagrid
-
menu
-
command
details
用来表示一段具体的内容,但是内容默认可能不显示,通过某种手段(如点击)与legend
交互才显示出来。这跟现在各种通过JavaScript隐藏一段内容,在点击后才显示出来的做法有些类似。比如:
它可以有一个open
的特性,用来显示细节与否。
datagrid
用来控制数据,可以由用户或者脚本来更新。
menu
HTML 2就存在了,不过HTML 4把它废弃了。HTML 5废物利用,并在期内加上command
元素。