已经存在近十年的HTML4已经成为不断发展的Web开发领域的瓶颈;HTML5标准在此时显得尤为重要。每天都有新颖而创新的网站出现,全方位地拓展HTML的边界。Web开发者正在寻求新的技术,提供更强大的功能,那些因为脚本语言和浏览器的限制而被隐瞒了的功能。
为了实现更好的灵活性和更强的互动性,及创造令人兴奋而更具交互性的网站和应用程序,HTML5 引入和增强了更为广泛的特性,包括控制,APIs,多媒体,结构和语义等。
有关HTML5标准的工作,起于2004年,在W3C HTML WG和WHATWG的共同努力下,目前还在进行中。许多关键成员加入了W3G的工作,包括四大主流浏览器厂商代表:苹果,Mozilla,Opera,和微软;还有一些有着不同利益和专业知识的其他组织和个人。
请注意,规范仍然只是一个进行中的工作,完成它还有很长的路要走。因此,文章中提到的这些特性可能将发生改变。这篇文章是为了对目前草案中的一些主要特性做一个简单的介绍。
结构
HTML5标准中引入了一整套新的元素,使建构网页更变得更容易。大多数的HTML 4网页含有各种共同的结构,比如页眉,页脚和列,如今,使用div元素加上描述id或class来标记是相当普遍的。
此图说明了一个典型的带id和class属性的div标记的两列布局。 它包含一个页眉,页脚和标题下方的水平导航条。 主要内容包含一篇文章和侧右栏。
div元素的大量使用是因为最新版本的HTML 4缺少必要的语义元素来更具体的描述这些部分。HTML5标准通过引入一些新的元素来解决这个问题,而这些元素表示各个不同的部分。
那些div元素可以用这些新元素代替:header, nav, section, article, aside, and footer
那个文档的标记可以如下所示:
- ﹤body﹥
- ﹤header﹥...﹤/header﹥
- ﹤nav﹥...﹤/nav﹥
- ﹤article﹥
- ﹤section﹥
- ...
- ﹤/section﹥
- ﹤/article﹥
- ﹤aside﹥...﹤/aside﹥
- ﹤footer﹥...﹤/footer﹥
- ﹤/body﹥
使用这些元素有几个优点。当与标题元素(h1,h2,h3,h4,h5,h6)联同使用时,产生了一种使用标题级别标记嵌套章节的方法,这将超过以前版本HTML的6个标题级别。这个规范包含一个生成大纲的详细算法 ,其中考虑到这些元素的结构并使之与以前版本的兼容。这个可以用来制作工具和浏览器生成内容表以协助用户浏览文档,例如,以下标记结构使用嵌套的section和h1构造:
- ﹤section﹥
- ﹤h1﹥Level 1﹤/h1﹥
- ﹤section﹥
- ﹤h1﹥Level 2﹤/h1﹥
- ﹤section﹥
- ﹤h1﹥Level 3﹤/h1﹥
- ﹤/section﹥
- ﹤/section﹥
- ﹤/section﹥
注意为了更好的与最新浏览器兼容,也可能适当用其他的标题元素(h2,h3,h4,h5,h6)代替h1元素。通过确认页面各部分的目的,使用特定的章节元素和辅助技术能帮助用户更容易地浏览网页。例如,他们可以很容易地从导航栏跳读或快速地从一篇文章跳到下一篇而不需要作者提供切换链接。作者也从中受益,由于采用几个显明的元素代替了文档中大量的div元素,从而使得源代码变得更清晰容易。
元素header表示一个部分的开头,但可能不只是包含章节标题——如它可以合理地加入副标题,版本信息或署名等。
- ﹤header﹥
- ﹤h1﹥A Preview of HTML 5﹤/h1﹥
- ﹤p class="byline"﹥By Lachlan Hunt﹤/p﹥
- ﹤/header﹥﹤header﹥
- ﹤h1﹥Example Blog﹤/h1﹥
- ﹤h2﹥Insert tag line here.﹤/h2﹥
- ﹤/header﹥
元素footer表示所在章节的脚注。脚注通常包含章节信息如作者,相关文章链接,版权等等。© 2007 Example Inc.元素nav表示导航链接部分。它适用于网站导航或目录列表。
- ﹤nav﹥
- ﹤ul﹥
- ﹤li﹥﹤a href="/"﹥Home﹤/a﹥﹤/li﹥
- ﹤li﹥﹤a href="/products"﹥Products﹤/a﹥﹤/li﹥
- ﹤li﹥﹤a href="/services"﹥Services﹤/a﹥﹤/li﹥
- ﹤li﹥﹤a href="/about"﹥About﹤/a﹥﹤/li﹥
- ﹤/ul﹥
- ﹤/nav﹥
元素aside是为了关联周边参考内容,一般用作侧边栏。
- ﹤aside﹥
- ﹤h1﹥Archives﹤/h1﹥
- ﹤ul﹥
- ﹤li﹥﹤a href="/2007/09/"﹥September 2007﹤/a﹥﹤/li﹥
- ﹤li﹥﹤a href="/2007/08/"﹥August 2007﹤/a﹥﹤/li﹥
- ﹤li﹥﹤a href="/2007/07/"﹥July 2007﹤/a﹥﹤/li﹥
- ﹤/ul﹥
- ﹤/aside﹥
元素section表示文章或应用程序的通用部分,如一个章节,例:
- ﹤section﹥
- ﹤h1﹥Chapter 1: The Period﹤/h1﹥
- ﹤p﹥It was the best of times, it was the worst of times,
- it was the age of wisdom, it was the age of foolishness,
- it was the epoch of belief, it was the epoch of incredulity,
- it was the season of Light, it was the season of Darkness,
- ...﹤/p﹥
- ﹤/section﹥
元素article表示文档,页面或站点的独立部分。它适用于像新闻,博客文章,论坛帖子或个人意见等内容。
- ﹤article id="comment-2"﹥
- ﹤header﹥
- ﹤h4﹥﹤a href="#comment-2" rel="bookmark"﹥Comment #2﹤/a﹥
- by ﹤a href="http://example.com/"﹥Jack O'Niell﹤/a﹥﹤/h4﹥
- ﹤p﹥﹤time datetime="2007-08-29T13:58Z"﹥August 29th, 2007 at 13:58﹤/time﹥
- ﹤/header﹥
- ﹤p﹥That's another great article!﹤/p﹥
- ﹤/article﹥