- 浏览: 464689 次
- 性别:
- 来自: 广州
最新评论
-
lhgyy00:
很好,回去好好研究下,3Q
博客资源与博客工具大全 -
ljl.java:
♦
你会遇到几段恋情?很准的哦~ -
ljl.java:
♦
你会遇到几段恋情?很准的哦~ -
jzzwy:
你这个red5是什么版本 Iterator<IConne ...
red5获取在线用户列表 -
81365341:
看着标题“red5配置详解”点进来的,结果没看到一句和配置有关 ...
red5配置详解
HTML 5 中的新元素
HTML 5 中的新元素结构和语义 |
<script language="JavaScript" type="text/javascript">
</script>
|
级别: 初级
Elliotte Rusty Harold (elharo@metalab.unc.edu), 副教授, Polytechnic University
2007 年 8 月 27 日
新千年以来,超文本标记语言(HTML)5 第一次向 HTML 中引入新的元素。新的结构元素包括aside
、figure
和section
。新的内联元素包括time
、meter
和progress
。新的内嵌元素有video
和audio
。新的交互元素有details
、datagrid
和command
。
超文本标记语言(HTML)的开发到 1999 年 HTML 4 就停止了。万维网联盟(W3C)把重点转向将 HTML 的底层语法从标准通用标记语言(SGML)改为可扩展标记语言(XML),以及可缩放向量图型(SVG)、XForms 和 MathML 这些全新的标记语言。浏览器厂商则把精力放到选项卡和富站点摘要(RSS)阅读器这类浏览器特性上。Web 设计人员开始学习使用异步 JavaScript + XML(Ajax),在现有的框架下通过层叠样式表(CSS)和 JavaScript™ 语言建立自己的应用程序。但是在接下来的八年中,HTML 本身没有任何变化。
最近,它又复活了。三家重要的浏览器厂商 — Apple、Opera 和 Mozilla Foundation — 成立了 Web Hypertext Application Technology Working Group(WhatWG)来开发传统 HTML 的新版本。最近,W3C 也注意到了这些活动,也启动了自己的新一代 HTML 项目,双方的成员有很多是相同的。这两个项目最终很可能合并。虽然很多细节还在争论之中,但下一版本 HTML 的大体轮廓已经清楚了。
Web 开发人员从 1999 年就一直期待 HTML 的新版本(通常称为 HTML
5,但是也称为 Web Applications 1.0),现在它终于发布了。它保持了 HTML
原来的特色:没有名称空间或模式。元素不必结束。浏览器会宽容地对待错误。p
仍然是 p
,table
仍然是 table
。
如果在 1999 年将一位 Web 开发人员冷冻起来,现在再解冻,那么他会遇到一些新的让人迷惑的元素。是的,他熟悉的元素(比如 div
)仍然保留了;但是,HTML 现在还包含 section
、header
、footer
和 nav
等新元素。em
、code
和 strong
仍然存在,但是增加了 meter
、time
和 m
。img
和 embed
仍然可用,但是还增加了 video
和 audio
。但是,他仔细观察一下就会发现,这些元素实际上没什么区别。其中许多元素可能在 1999 年是开发人员需要而没有得到的。通过与他已经掌握的元素进行简单的类比,这些新元素都很容易理解。实际上,与 Ajax 或 CSS 相比,它们非常容易掌握。
最后,当他打开 300MHz 的笔记本(运行的是 Windows 98,也是在 1999 年冷冻起来的)时,他可能对 Netscape 4 和 Windows® Internet Explorer® 5 中显示的新页面效果很吃惊。当然,这些老式浏览器不认识新元素,会完全忽略它们,但是页面仍然会显示,内容仍然是完整的。
这 并不是什么虚构的故事。HTML 5 的设计原则就是在不支持它的浏览器中能够平稳地退化。原因很简单:我们都是这样的 “原始人”。浏览器现在有选项卡、CSS 和 XmlHttpRequest,但是它们的 HTML 显示引擎仍然停留在 1999 年的水平。除了用户量大大增加之外,Web 其实在本质上没什么进步。HTML 5 考虑到了这一点。它目前为 Web 开发人员一些真正的好处,随着浏览器的缓慢升级,页面浏览者会逐渐享受到这些好处。我们来看看 HTML 5 提供了什么。
由于缺少结构,即使是形式良好的 HTML 页面也比较难以处理。必须分析标题的级别,才能看出各个部分的划分方式。边栏、页脚、页眉、导航条、主内容区和各篇文章都由通用的 div
元素来表示。HTML 5 添加了一些新元素,专门用来标识这些常见的结构:
-
section
:这可以是书中的一章或一节,实际上可以是在 HTML 4 中有自己的标题的任何东西 -
header
:页面上显示的页眉;与head
元素不一样 -
footer
:页脚;可以显示电子邮件中的签名 -
nav
:指向其他页面的一组链接 -
article
:blog、杂志、文章汇编等中的一篇文章
我们来考虑一个典型的 blog 主页,它的顶部有页眉,底部有页脚,还有几篇文章、一个导航区和一个边栏,见清单 1。
清单 1. 典型的 blog 页面
|
即使有正确的缩进,这些嵌套的 div
仍然让人觉得非常混乱。在 HTML 5 中,可以将这些元素替换为语义性的元素,见清单 2。
清单 2. 用 HTML 5 编写的典型 blog 页面
|
现在不再需要 div
了。不再需要自己设置 class 属性,从标准的元素名就可以推断出各个部分的意义。这对于音频浏览器、手机浏览器和其他非标准浏览器尤其重要。
|
除了结构性元素之外,HTML 5 还增加了一些纯语义性的块级元素:
-
aside
-
figure
-
dialog
我在文章和书中一直使用前两个元素。第三个元素我不经常用,它主要用于书面文本。
aside
元素代表说明、提示、边栏、引用、附加注释等,也就是叙述主线之外的内容。例如,在 developerWorks 文章中,常常会看到用表格形式编写的边栏,见清单 3。
清单 3. 用 HTML 4 编写的 developerWorks 边栏
|
在 HTML 5 中,可以按照更有意义的方式编写这个边栏,见清单 4。
清单 4. 用 HTML 5 编写的 developerWorks 边栏
|
浏览器可以决定把这个边栏放在哪里(可能需要用一点儿 CSS 代码)。
figure
元素代表一个块级图像,还可以包含说明。例如,在许多 developerWorks 文章中,可以看到清单 5 这样的标记;其结果见图 1。
清单 5. 用 HTML 4 编写的 developerWorks 图
|
图 1. Install Mozilla XForms dialog
在 HTML 5 中,可以按照更有语义性的方式编写这个图,见清单 6。
清单 6. 用 HTML 5 编写的 developerWorks 图
|
最重要的是,浏览器(尤其是屏幕阅读器)可以明确地将图和说明联系在一起。
figure
元素不只可以显示图片。还可以使用它给 audio
、video
、iframe
、object
和 embed
元素加说明。
dialog
元素表示几个人之间的对话。HTML 5 dt
元素可以表示讲话者,HTML 5 dd
元素可以表示讲话内容。所以,在老式浏览器中也可以以合理的方式显示对话。清单 7 显示在 Galileo 的 “Dialogue Concerning the Two Chief World Systems” 上的一段著名对话。
清单 7. 用 HTML 5 编写的 Galilean 对话
|
对于这个元素的准确语法还有争议。一些人希望在 dialog
元素中嵌入非对话文本(比如剧本中的舞台说明),还有人不喜欢扩展 dt
和 dd
元素的作用。尽管在具体语法方面有争议,但是大多数人都认为以这样的语义性方式表达对话是好事情。
|
HTML 4 用 5 个不同的内联元素表示略有差异的计算机代码:var
、code
、kbd
、tt
和 samp
。但是,它无法表示时间、数字等基本数值。HTML 5 提供了几个新的内联元素来满足非技术作者的需求。
m
元素表示文本被 “加上标志”,但是不一定要强调。可以把它想像成书中突出显示的一节。Google 的缓存页面就是典型的用例。如果链接到一个缓存的副本,搜索词就被加上标志。例如,如果搜索 “Egret”,那么缓存的 Google 页面可能像下面这样:
The Great <m>Egret</m> (also known as the |
对于这个元素的名称当前还有争议。在规范发布之前,它可能从 m
改为 mark
。
time
元素表示一个时间值,比如 5:35 P.M., EST, April 23, 2007。例如:
<p>I am writing this example at |
time
元素可以帮助浏览器和其他程序识别出 HTML 页面中的时间。它不要求对元素内容应用任何特定的格式。但是,每个 time
元素都应该有一个 datetime
属性,其中包含更适合机器识别的时间值,比如:
<p>I am writing this example at |
适合机器读取的时间值可能对搜索引擎、日历程序等有帮助。
meter
元素表示指定范围内的数字值。例如,可以用它表示薪水、投票给 Le Pen 的法国选民的百分比或考试分数。在这里,我使用 meter
标出 Software Development 2007 上一位 Google 程序员提供的数据:
<p>An entry level programmer in Silicon Valley |
meter
元素帮助浏览器和其他客户机识别 HTML 页面中的数量。它不要求对元素内容应用任何特定的格式。但是,每个 meter
元素可以有最多 6 个属性,它们按照更适合机器识别的形式表示这个数量:
-
value
-
min
-
low
-
high
-
max
-
optimum
这些属性都应该包含一个十进制数字。例如,期末考试的分数可以写成下面这样:
<p>Your score was |
这 表示这个学生的分数是百分制中的 88.7。可能的最低分数是 0,但是实际的最低分数是 65。可能的最高分数是 100,但是实际的最高分数是 96。用户代理可以用某种数值控件显示这一信息,也可以在工具提示中显示额外的数据,但是最常见的情况可能是像其他内联元素一样对它应用样式。
progress
元素表示一个正在进行的过程的状态,就像图形用户界面(GUI)应用程序中的进度条。例如,可以用它表示一个文件已经下载的百分比或者播放电影时的当前位置。下面这个进度控件表示下载已经完成了 33%:
<p>Downloaded: |
value
属性表示操作的当前状态。max
属性表示操作的总量。这个元素指出要下载的数据总量是 4,603,807 字节,已经下载了 1,534,602 字节。
忽略 max
属性,就可以显示无限的进度。
在操作进行时,应该使用 JavaScript 语言动态地更新进度条。在静态情况下,这个元素没什么意义。
|
视
频已经在 Web 上广泛流行了,但是其格式几乎都是专有的。YouTube 使用 Flash,Microsoft 使用 Windows
Media®,Apple 使用 QuickTime。在一种浏览器中用来嵌入这些内容的标记在另一种浏览器中是无效的。因此,WhatWG
提议引入一个新的 video
元素,用来嵌入任意视频格式。例如,可以用以下代码嵌入我的 QuickTime 电影 “a Sora in Prospect Park”:
<video src="http://www.cafeaulait.org/birds/sora.mov" /> |
对
于以哪种格式和解码器作为首选,仍然有争议。可能会强力推荐或要求使用 Ogg Theora。还可以可选地支持 QuickTime 等专有格式和
MPEG-4 等受专利限制的格式。实际使用的格式很可能由市场决定,就像是 GIF、JPEG 和 PNG 格式那样(这些格式通过市场竞争压倒了
BMP、X-Bitmap 和 JPEG 2000 等竞争者,成为 img
元素的首选格式)。
还提议引入 audio
元素。例如,可以使用以下代码给 Web 页面加上背景音乐:
<audio src="spacemusic.mp3" |
autoplay
属性指示浏览器在装载页面后立即开始播放,而不等待明确的用户请求。音频循环播放 20,000 次,然后停止(或者在用户关闭窗口或转到另一个页面时停止)。当然,浏览器可以(而且应该)允许用户关闭内嵌的媒体,不应该只按页面作者的要求去做。
浏览器必须支持 WAV 格式,还可以支持 MP3 等其他格式。
因为老式浏览器不支持这些元素,而且它们对于盲人和聋人用户来说没有意义,所以 audio
和 video
元素可以包含额外的标记,用来描述音频和视频的内容。这对搜索引擎也有帮助。在理想情况下,这些标记是音频和视频内容的完整文字版本。例如,清单 8 显示 John F. Kennedy 的就职演说。
清单 8. 用 HTML 5 编写的 John F. Kennedy 的就职演说
|
|
HTML 5 也被称为 Web Applications 1.0。为了实现这个目标,增加了几个为 Web 页面提供交互体验的新元素:
-
details
-
datagrid
-
menu
-
command
这些元素都可以根据用户的操作和选择改变显示的内容,而不需要从服务器装载新页面。
details
元素表示在默认情况下可能不显示的详细信息。可选的 legend
元素可以提供详细信息的摘要。details
元素的用途之一是提供脚注和尾注。例如:
The bill of a Craveri's Murrelet is about 10% thinner |
没有指定具体的显示方式。浏览器可以选用脚注、尾注和工具提示等方式。
每个 details
元素可以有一个 open
属性。如果设置了这个属性,那么详细信息在最初就显示出来。如果没有设置这个属性,那么会隐藏它们,直到用户要求显示它们。无论是哪种情况,用户都可以通过单击一个图标或其他控件来显示或隐藏详细信息。
datagrid
元素提供一个网格控件。可以用它显示树、列表和表格,用户和脚本可以更新这些界面元素。与之相反,传统的表格主要用来显示静态数据。
datagrid
从它的内容(一个 table
、select
或其他 HTML 元素)获得初始数据。例如,清单 9 中的 datagrid
包含一张成绩表。在这个示例中,datagrid
的数据来自一个 table
。更简单的一维 datagrid
可以从 select
元素获得数据。如果使用其他 HTML 元素,那么每个子元素成为网格中的一行。
清单 9. 成绩表 datagrid
|
这个元素与常规表格的区别在于,用户可以选择行、列和单元格;把行、列和单元格折叠起来;编辑单元格;删除行、列和单元格;对网格排序;以及在客户机浏览
器中直接进行其他数据操作。可以用 JavaScript 代码监视更新。Document Object Model(DOM)中增加了 HTMLDataGridElement
接口以支持这个元素(清单 10)。
清单 10. HTMLDataGridElement
|
还可以使用 DOM 在网格中动态地装载数据。也就是说,datagrid
可以不包含那些提供初始数据的子元素。可以用一个 DataGridDataProvider
对象设置它(清单 11)。这样就可以从数据库、XmlHttpRequest 或者 JavaScript 代码能够访问的任何资源装载数据。
清单 11. DataGridDataProvider
|
menu
元素实际上在 HTML 2 中就出现了。在 HTML 4 中废弃了它,但是 HTML 5 又恢复了它并指定了新的意义。在 HTML 5 中,menu
包含 command
元素,每个 command
元素引发一个操作。例如,清单 12 是一个弹出警告框的菜单。
清单 12. HTML 5 菜单
|
还可以用 checked="checked"
属性将命令转换为复选框。通过指定 radiogroup
属性,可以将复选框转换为单选按钮,这个属性的值是互相排斥的按钮的组名。
除了简单的命令列表之外,还可以使用 menu
元素创建工具栏或弹出式上下文菜单,这需要将 type
属性设置为 toolbar
或 popup
。例如,清单 13 显示一个与 WordPress 等 blog 编辑器相似的工具栏。它使用 icon
属性链接到按钮的图片。
清单 13. HTML 5 工具栏
|
label
属性提供菜单的标题。例如,清单 14 显示一个 Edit 菜单。
清单 14. HTML 5 Edit 菜单
|
菜单可以嵌套在其他菜单中,形成层次化的菜单结构。
|
HTML 5 是未来的 Web 的一部分。它的新元素会产生更干净更简单的代码,让页面更容易理解。Div
和 span
仍然有用处,但是不会像以前那样频繁地使用它们了。许多页面不再需要它们了。
尽管目前并非所有浏览器都支持这些元素,但这是 HTML 引入大多数新元素之后的普遍情况,比如 img
、table
、object
等等。随着时间的推移,支持会逐渐完善。浏览器会忽略不认识的 HTML 元素,这意味着老式浏览器的用户仍然能够阅读 HTML 5 页面,他们的浏览方式与以前一样。现代浏览器的用户可以获得更好的用户体验,但是没有人会由于 HTML 5 新元素而妨碍浏览。
用 8 年时间等待新特性的出现实在是够漫长的,尤其是在快速变化的 Web 世界中。在 Web 时代的早期,Netscape、Microsoft 和其他公司几乎每周都会引入新元素,HTML 5 终于也为我们提供了一些令人兴奋的东西。同时,它以一种谨慎得多的方式定义这些元素,让我们可以放心地使用它们。前景是光明的。
学习
- 您可以参阅本文在 developerWorks 全球网站上的 英文原文。
-
HTML 的未来,第 1 部分: WHATWG(Edd Dumbill,developerWorks,2005 年 12 月):研究开发人员、设计人员、作家、厂商、标准组织和其他组织提出的各种 HTML 发展路径。
-
The future of HTML, Part 2: XHTML 2.0(Edd Dumbill,developerWorks,2006 年 3 月):讨论 Extensible Hypertext Markup Language(XHTML)的下一个版本,以及 W3C 对 Ajax 中嵌入的富客户机行为的要求。
-
XHTML 1.0: Marking up a new dawn(Molly Holzschlag,developerWorks,2006 年 1 月):了解 XHTML 1.0 的良构性和有效性需求。
-
WhatWG and HTML 5 FAQ:寻找与 WhatWG 相关的许多常见问题的答案。
-
Web Applications 1.0:了解 HTML 5 规范当前的工作草案。
-
Dialogue Concerning the Two Chief World Systems:阅读这篇文章(由 Stillman Drake 翻译,由 S. E. Sciortino 注释和整理)。
-
Ogg Theora:试用下一代开放视频格式。
-
IBM XML 认证:了解如何成为 IBM 认证的 XML 和相关技术开发人员。
-
XML and XML Schema:在 developerWorks 中国网站 XML 专区中可以找到大量技术文章和提示、教程、标准和 IBM Redbooks。
-
developerWorks 技术事件和网络广播:通过这些活动了解最新的技术进展。
获得产品和技术
-
IBM 试用版软件:使用这些可以从 developerWorks 直接下载的试用软件构建您的下一个开发项目。
讨论
-
XML 专区论坛:参与各个以 XML 为中心的论坛。
- 通过参与 developerWorks blog 加入 developerWorks 社区。
Elliotte Harold 出生在新奥尔良,现在他还定期回老家喝一碗美味的秋葵汤。但目前他和妻子 Beth、他们的狗 Shayna、猫 Charm 和 Marjorie 定居在布鲁克林附近的 Prospect Heights。他是 Polytechnic 大学的计算机科学副教授,讲授 Java 和面向对象编程。他的 Cafe au Lait Web 站点是 Internet 上最受欢迎的独立 Java 站点之一,子站点 Cafe con Leche 是最受欢迎的 XML 站点之一。他的著作包括 Effective XML 、 Processing XML with Java 、 Java Network Programming 和 The XML 1.1 Bible 。他的最新著作是 Java I/O, 第二版。他目前从事 XOM API 处理 XML、Jaxen XPath 引擎和 Jester 测试覆盖工具的研究。 |
转自:IBM开发者社区
相关推荐
### HTML5的新元素详解 #### 一、背景与概述 自1999年HTML4发布以来,HTML的标准并未有实质性的更新。...随着浏览器对HTML5的支持不断增强,这些新元素将会越来越广泛地应用于实际项目中,从而带来更好的用户体验。
、html5shiv.js、html5shiv-printshiv.js以及css3-mediaqueries.min.js这四个文件是针对HTML5在老版本浏览器中的兼容性问题而设计的解决方案。 首先,我们来看`html5.js`。这个文件通常包含了一些JavaScript代码,...
HTML5 Shiv是一个JavaScript库,主要用于解决在Internet Explorer(IE)6至9这些旧版本浏览器中对HTML5新元素不支持的问题。这些浏览器无法识别并样式化HTML5的语义化标签,如、、、等。`html5shiv-3.7.3`是这个库的...
总的来说,`html5shiv.min.js`是为了解决HTML5新元素在旧版Internet Explorer浏览器中的兼容性问题而生的JavaScript库,通过它,开发者可以在旧版IE中自由地使用HTML5的新特性,提升网页的现代化水平。
1. HTML5的新元素:HTML5引入了多个新的语义化标签,如、、、等,这些元素帮助开发者更好地组织网页结构,提高可读性和搜索引擎优化(SEO)。 2. Canvas画布:摇号抽奖程序可能利用HTML5的元素来绘制动态效果,比如...
4. **HTML5画布**(第4章):元素是HTML5中的一个巨大创新,允许动态生成图形,如图表、游戏或任何需要实时更新的图像。通过JavaScript,开发者可以进行像素级别的操作,实现丰富的视觉效果。 5. **HTML5拖放**(第...
HTML5 Shiv通过JavaScript模拟这些新元素,使得它们在旧版IE中也能正常工作。 在标题“html5shiv.zip”中,我们可以推断这个压缩包包含的是HTML5 Shiv的源代码或者预编译后的文件。通常,这种类型的压缩包会提供...
1. **创建DOM元素**:在JavaScript中,HTML5shiv会创建一个对象,该对象模拟了HTML5新元素的DOM节点。这使得开发者可以通过JavaScript来操作这些元素,例如添加子节点或设置属性。 2. **CSS样式支持**:由于旧版IE...
1. **新元素**:HTML5引入了许多新元素,如、、、、等,这些元素使得页面结构更加清晰,提高了内容的可读性和可访问性。 2. **多媒体支持**:HTML5新增了和元素,允许直接在网页中嵌入音频和视频,无需依赖Flash或...
接着,会详细介绍HTML5的新元素,如、、和等,这些元素有助于提高网页的可读性和搜索引擎优化。此外,HTML5的表单控件升级,如新增的、等,让数据输入更加便捷和直观。 多媒体是HTML5的另一大亮点。书中会讲解如何...
在IE6到IE8中,由于它们不理解HTML5新元素,因此无法直接应用CSS样式。`html5shiv.js`通过创建这些新元素的DOM节点,使得它们可以接受CSS样式,从而增强了这些旧版IE浏览器对HTML5元素的样式支持。 引入这两个文件...
许多HTML5特性需要JavascriptAPI,,它们将开发交互式应用变的更简单。但是还有很多新的元素标签,你可以把它们用在你的Web1.0网页上。我们要对它们做一些研究,让我们一起做一个博客吧。首先,我们要使用header,...
在HTML5中,开发者有了更多的工具来创建结构化、语义化的网页内容。 首先,让我们关注一下新增的结构元素。`<section>`元素是一个非常重要的组成部分,它允许开发者将网页划分为逻辑章节或区域,比如书籍的章节或者...
6. SVG(Scalable Vector Graphics):SVG是另一种在HTML5中内建的矢量图形格式,它可以提供高质量的图像,且文件大小较小,适合创建复杂的图形和图标。 7. Web Workers和Web Storage:HTML5的Web Workers允许在...
1. HTML5新元素的用法和示例。 2. 如何使用HTML5的离线存储和多媒体元素。 3. CSS3选择器的详细解析和使用场景。 4. 渐变、阴影、边框图像的创建方法。 5. CSS3动画和过渡的实现及应用场景。 6. 响应式设计的原理与...
HTML5作为下一代超文本标记语言,引入了许多新元素,比如`<canvas>`用于图形绘制,`<audio>`和`<video>`用于多媒体播放,`<svg>`支持矢量图,以及`<gamepad>`等与游戏相关的API。这些元素使得HTML5能够直接在浏览器...
- **`<hgroup>`**:用于分组一组相关的标题标签(`<h1>`到`<h6>`),不过在HTML5中已被废弃,推荐直接使用多个标题标签。 - **`<menu>`**:表示一个菜单列表,常用于显示页面的导航链接。 - **`<nav>`**:表示文档中...
这个库扩展了ASP.NET MVC的HtmlHelper类,增加了对HTML5新元素和属性的支持。HtmlHelper是ASP.NET MVC中一个非常重要的辅助类,它提供了一系列的方法用于生成HTML标记,使得开发者能更方便地在视图层操作HTML。 ...