内容


使用 Dojo 的 Ajax 应用开发进阶教程,第 2 部分

富含语义的 HTML

Comments

系列内容:

此内容是该系列 # 部分中的第 # 部分: 使用 Dojo 的 Ajax 应用开发进阶教程,第 2 部分

敬请期待该系列的后续内容。

此内容是该系列的一部分:使用 Dojo 的 Ajax 应用开发进阶教程,第 2 部分

敬请期待该系列的后续内容。

HTML 是开发 Web 应用的基础。目前已经有数以千亿的使用 HTML 语言编写的网页。HTML 语言的规范也不断在演进和更新。HTML 语言虽然上手比较简单,但是如何开发出组织良好、结构清晰和可维护性高的 HTML 文档,对很多 Web 开发人员来说,也是一个值得探讨的话题。随着 Ajax 应用的流行,一种称为“富含语义的 HTML(Semantic HTML)”的最佳实践,逐渐被广大 Web 开发人员所推崇。这种实践的主要思想是还 HTML 以本来面目,只使用 HTML 来描述文档的结构,而把与展示相关的部分从 HTML 文档中剥离出去,交给 CSS 来处理。本文将详细介绍这一最佳实践,涉及的内容包括 HTML 规范的演化历史、推荐使用的 HTML 元素和属性、一系列具体的最佳实践和微格式。

下面从富含语义的 HTML 的简要介绍开始,所涉及的内容包括 HTML 规范历史以及它与 CSS 和 JavaScript 的关系。

富含语义的 HTML 介绍

富含语义的 HTML(Semantic HTML)指的是编写 HTML 文档的一种很好的实践。这种实践要求在编写 HTML 文档时,尽可能的使用 HTML 规范中定义的与文档结构相关的富含语义的元素,而避免使用与展示相关的元素,将展示相关的内容交给 CSS 去处理。通过应用这种实践,可以将 HTML 文档的结构与展示分离,使两者达到松散耦合。这种松散耦合带来的好处是使得结构和展示可以分别独立变化,不会杂糅在一起。当只需要修改 Web 应用的外观时,理想情况下,Web 应用的 HTML 文档都不需要修改,只需要修改 CSS 文件即可。

Ajax 应用的流行,从一个方面推动了这种实践的流行。目前的 Web 2.0 应用都要求快速上线,并且以渐进的方式不断推出新功能,即所谓的“永远 beta 版(perpetual beta)”。这种需求对于 Web 应用的架构有比较高的要求。只有在各个部分松散耦合的情况下,快速添加新功能或改进已有功能才是可能的。富含语义的 HTML 的实践促进了 Web 应用的松散耦合,因此越来越被广大 Web 开发人员所接受。另外,HTML 语言自身的演化发展,也从一个侧面反映出了这个趋势。下面将从简要介绍 HTML 语言的历史开始,并介绍富含语义的 HTML 与 CSS 和 Ajax 应用的关系。

HTML 的历史

HTML 语言从诞生之日起一直在不断演化,其规范的版本也有很多。HTML 的发展历史可以简要地概括如下。可以在 参考资料 中找到这些规范的链接。

HTML 最初的草案
HTML 最早使用在欧洲核子能研究机构中,用来方便研究人员使用和共享文档。在 1991 年出现的关于 HTML 的最早的说明中,HTML 中共包含 22 个元素,其中的 13 个保留到了 HTML 4 中。由于 HTML 最初是用来描述科学文档的,这 22 个元素基本都是用来描述文档的结构的。比如 <a> 用来表示文档之间的超链接;<p> 表示文档中的段落;<h1>、<h2>、<h3>、<h4>、<h5> 和 <h6> 用来表示不同级别的标题。
HTML 2.0
HTML 2.0 规范在 1995 年 11 月发布为 RFC 1866。2.0 规范中增加了 <img> 和与表单提交相关的 <form>、<input> 和 <select> 等元素。
HTML 3.2
HTML 3.2 规范在 1997 年 1 月作为 W3C 的推荐规范发布。正是在这个版本中,由 Netscape 和微软的 Internet Explorer 引入的很多与展示相关的元素被规范化。这些元素包括 <font>、<basefont>、<strong>、<strike>、<u>、<b> 和 <center> 等。这些元素使得 HTML 页面的结构与展示被杂糅在一起。
HTML 4.01
HTML 4.01 规范在 1999 年 12 月作为 W3C 的推荐规范发布,并于 2000 年 5 月成为国际标准。HTML 4.01 规范试图解决 HTML 3.2 规范中引入的与展示相关的元素的问题,与此同时,又需要考虑规范的向后兼容性。HTML 4.01 规范把许多与表示相关的元素标记为废弃的,不推荐使用。同时引入了三种“风格(flavor)”。在“严格(Strict)”风格中,废弃的元素是不能使用的;在“过渡性(Transitional)”风格中,废弃的元素是可以使用的;在“框架(Frameset)”风格中,只允许使用与框架相关的元素。
HTML 5
作为 HTML 规范的下一个版本,HTML 5 引入了更多富含语义的元素,如 <nav> 表示网站的导航栏,<section> 表示文档中的章节;与此同时,在 HTML 4.01 中被废弃的一些元素,如 <center> 和 <font> 等被移除了。

从上面列出的 HTML 规范的历史中可以看出,HTML 从仅包含表示文档结构的元素,到后来引入了与展示相关的元素,再到目前两者并存,以及下一个版本中展示相关的元素部分被移除。HTML 规范的发展趋势是与展示相关的元素将逐步消失。HTML 文档应该描述文档本身,而不应该描述文档如何展示给用户。HTML 规范的发展以一种螺旋式上升的方式实践着这个最初的目标。

富含语义的 HTML 与 CSS

在 HTML 中,与展示相关的元素的引入,主要是由于当时并没有好的方式来指明 HTML 文档中元素的样式。比如将一段文本用加粗或倾斜的字体来显示。在 CSS 广泛应用之前,只能通过 HTML 元素或属性来实现。由此引入了 <b> 和 <i> 这样的元素。随着 CSS 规范在浏览器中得到广泛的支持,Web 开发人员有了更好的方式来指明 HTML 文档中元素的样式。比如将一段文本加粗显示可以使用 CSS 语法 {font-weight : bold;} 来实现。正是由于 CSS 的出现与流行,富含语义的 HTML 实践才成为可能。

富含语义的 HTML 与 Ajax 应用

目前 Ajax 应用非常流行,越来越多的应用采用 Ajax 技术来提高自身的用户体验。Ajax 虽然是基于原有的 HTML、JavaScript 和 CSS 等技术,但是它重新定义了这三种技术在 Web 应用开发中的定位。一个典型的 Ajax 应用的结构如 图 1 所示。

图 1. Ajax 应用的典型结构图
Ajax 应用的典型结构图
Ajax 应用的典型结构图

图 1 中可以看到,Ajax 应用由三个部分组成,分别是结构、展示和行为。结构指的是应用的基本内容结构,由 HTML 来描述;展示指的是应用的外观,包括颜色、字体大小等样式,由 CSS 来描述;行为指的是应用与用户的交互,包括界面的部分刷新、处理与服务器端的交互等,由 JavaScript 来描述。在这三个部分中,由 HTML 描述的文档结构是整个 Ajax 应用的基础,CSS 通过各种选择器为文档应用样式,而 JavaScript 则通过 DOM 操作来修改文档结构。

富含语义的 HTML 为 Ajax 应用提供了描述结构的最佳方式。在开发 Ajax 应用时,从一系列富含语义的 HTML 文档出发,将为后面的开发打下良好的基础。HTML 规范中元素和属性众多,而富含语义的 HTML 的实践则推荐使用 HTML 规范中表示文档结构和富含语义的元素和属性。下面将详细介绍这些推荐使用的元素和属性,同时也会讨论那些不建议使用的与展示相关的元素和属性,并说明如何用 CSS 替换它们。

HTML 元素与属性

下面将介绍 HTML 4.01 规范中的一些重要的元素与属性。这些元素与属性大致上分成两类,一类是表示文档结构和富含语义的,是推荐使用的;另一类是与文档的展示相关的,是不推荐使用的,而应该用 CSS 来实现相应的展示效果。

文档结构和富含语义的元素

文档结构和富含语义的元素的介绍见 表 1

表 1. 文档结构和富含语义的元素介绍
元素 说明
<h1>、<h2>、<h3>、<h4>、<h5> 和 <h6><h1>、<h2>、<h3>、<h4>、<h5> 和 <h6> 等六个元素用来表示不同级别的标题。<h1> 表示重要性最高的,<h6> 表示重要性最低的。浏览器对于不同重要性的标题会有默认的显示样式,一般是通过字体大小来区分。当需要表示文档中每个部分的标题时,推荐使用这六个元素。
<p><p> 元素用来表示文档中的一个段落。HTML 文档中的自然段落推荐使用该元素来表示。
<em>、<strong><em> 和 <strong> 两个元素用来表示对文档中文本的强调。在强调性方面,<strong> 要高于 <em>。浏览器一般把 <em> 中的文本显示为斜体,把 <strong> 中的文本显示为粗体。
<abbr>、<acronym><abbr> 和 <acronym> 元素用来表示缩写词,其中 <abbr> 表示一般的缩写词,如“Inc.”是“incorporated”的缩写;而 <acronym> 表示由首字母组成的缩写词,如“UN”是“United Nations”的缩写。这两个元素的文本是缩写词本身,一般通过 title 属性来说明完整的词组。如 <acronym title="United Nations">UN</acronym>。
<blockquote>、<q><blockquote> 和 <q> 元素用来表示文档中的引用。如果在文档中需要引用其它人说过的话或是来自其它文献资料的内容,应该使用这两个元素。<blockquote> 用来表示较长的引用,一般自成一个段落;<q> 则表示较短的引用,一般嵌在原始文本中。两个元素的 cite 属性用来给出引用文本的出处(URI)。浏览器通常会把 <blockquote> 显示在缩进的块中,会为 <q> 元素的内容添加引号。下面给出两个元素的示例:<blockquote uri="http://americancivilwar.com/north/lincoln.html">Four score and seven years ago our fathers brought forth, upon this continent, a new nation, conceived in Liberty, and dedicated to the proposition that all men are created equal.</blockquote>;<p>As Abraham Lincoln said, <q>all men are created equal</q>.</p>
<ul>、<ol>、<li><ul> 和 <ol> 元素用来表示列表型的内容。<ul> 表示的是无序列表;<ol> 表示的是有序列表;<li> 表示列表中的条目。
<dl>、<dt>、<dd><dt> 和 <dd> 元素分别表示术语及其描述。<dl> 表示 <dt> 和 <dd> 对的列表。
<cite><cite> 元素表示对外部资料的引用。与 <blockquote> 和 <q> 元素不同的是,<cite> 里面包含的是资料的名称,而不是内容。如 <cite>JavaScript 高级程序设计 </cite>
<code><code> 元素表示程序源代码。如果需要在 HTML 文档中嵌入一段计算机代码,应该使用该元素。如 <code>System.out.println("Hello World!");</code>

与展示相关的元素和属性

与展示相关的元素和属性的介绍见 表 2 表 2 中给出了相应的 CSS 替代实现方式。

表 2. 展示相关的元素和属性介绍
元素或属性 说明 替代实现
<center><center> 元素用来将文档中的一个部分居中显示。 将一个元素水平居中显示的方式有很多。其中一种做法是使用自动空白边,即:{margin : 0 auto;}
<font><font> 元素用来设置文本的字体。如 <font size=12>Font</font> 使用 CSS 来实现:{font : bold 12px;}
<strike>、<s><strike> 和 <s> 元素用来实现在文本中间划线的效果。如 <strike>Sample</strike>。 使用 CSS 来实现:{text-decoration:line-through;}
<u><u> 元素用来实现在文本下添加下划线的效果。如 <u>Sample</u> 使用 CSS 来实现:{text-decoration:underline;}
<b><b> 元素用来实现文本加粗的效果。 使用 CSS 来实现:{font-weight : bold;}
<i><i> 元素用来实现文本倾斜的效果。 使用 CSS 来实现:{font-style: italic;}
<tt><tt> 元素用来表示与打字机效果一样的等宽字体显示。如 <tt>Sample</tt> 使用 CSS 中的 font 来设置等宽字体。
<big><big> 元素用来使得文本的字体变大。 使用 CSS 来实现:{font-size : 200%;}
<small><small> 元素用来使得文本的字体变小。 使用 CSS 来实现:{font-size : 50%;}
<hr><hr> 元素用来在页面上添加一条水平线。 可以用 <div> 元素代替 <hr>。通过设置 <div> 的大小和背景颜色来达到同样的效果。
@colorcolor 属性用在 <font> 中用来表示字体的颜色。 使用 CSS 来实现:{color : red;}
@bgcolorbgcolor 属性用来设置元素的背景颜色。 使用 CSS 来实现:{background-color : red;}
@alignalign 属性用来设置元素内容的水平对齐方式。根据所应用的元素的不同,其可选的值也不同。 需要根据不同的元素选用不同的 CSS 样式。一般情况下,可以用 text-align 来代替。
@valignvalign 属性用来设置表格中一行的垂直对齐方式。 根据属性的值不同,使用不同的 CSS。如 valign = bottom 的情况,可以采用绝对定位并设置 bottom 为 0 来实现。
@face, @sizeface 和 size 都是 <font> 元素的属性,分别用来表示字体家族和大小。 使用 CSS 来实现:{font-family : verdana; font-size : 12px;}

上面介绍的这些元素和属性,为编写富含语义的 HTML 文档提供了最基础的构建元素。除此之外,在编写富含语义的 HTML 文档时,还有很多不错的最佳实践可以参考。运用这些实践,将可以从更加宏观的角度来看待富含语义的 HTML。下面将具体介绍这些实践。

最佳实践

在编写富含语义的 HTML 文档时,有一些比较好的做法可以借鉴。遵循这些做法,将帮助避免很多常见的问题。这些好的实践包括在编写 HTML 文档之前需要选用合适的 DTD,编写完成之后需要验证 HTML 文档的语法,在编写过程中需要选用适合的元素和 class 属性来表示语义等。下面将具体介绍如何在具体的 HTML 文档编写过程中应用这些最佳实践。

选用合适的 DTD

HTML 文档中的文档类型声明(Document type declaration,DTD)用来声明该文档所使用的 HTML 规范的版本。该声明可以帮助浏览器确定如何显示该文档。目前主流的 HTML 规范版本是 4.01,同时 HTML 4.01 提供三种风格,因此比较常用的 HTML 文档类型声明有 表 3 中所示的三种。

表 3. HTML 4.01 规范对应的 DTD 说明
文档类型 文档类型声明 说明
HTML 4.01 严格型 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> 不允许使用废弃的与展示相关的元素与属性
HTML 4.01 过渡型 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 可以使用所有元素和属性
HTML 4.01 框架型 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd"> 可以使用与框架相关的元素和属性

对于富含语义的 HTML 文档来说,通常来说是不应该使用与展示相关的元素与属性的。因此,HTML 4.01 严格型的文档类型声明是最适合的。不过有些文档结构语义,只使用 HTML 4.01 严格型中规定的元素和属性的话,是无法实现的。(关于这一点的具体说明,见 绕开“灰色地带”)。综合来说,比较好的折衷方案是使用 HTML 4.01 过渡型的文档类型声明,但是在文档中避免使用废弃的元素和属性。如果可以确定 HTML 4.01 严格型中规定的元素和属性已经足够的话,使用该类型的文档类型声明是最好不过的选择。

需要说明的是,目前的浏览器都有很强的容错性和向后兼容性。因此,即便没有正确的声明文档类型,浏览器也能正确的显示。但这并不意味着可以放弃使用正确的文档类型声明。

验证你的 HTML

在选择好了文档类型声明之后,另外一个必须要做的步骤是使用 HTML 语法验证器来验证 HTML 文档。W3C 提供了一个 HTML 文档验证器。(见 参考资料 )。该验证器可以根据 URL 来验证,也可以验证用户上传的 HTML 文件或是直接输入的 HTML 代码。该验证器会根据文档的类型声明进行校验,并给出详细的信息。可以根据验证的结果进一步的修改 HTML 文档。 图 2 中给出了对一段不符合 HTML 4.01 严格型语法的 HTML 文档进行验证的结果。

图 2. 使用 W3C HTML 语法验证器的结果
 使用 W3C HTML 语法验证器的结果
使用 W3C HTML 语法验证器的结果

图 2 中的 HTML 文档在 <ol> 元素中使用了属性 start,因此不符合 HTML 4.01 严格型规范。如果改成 HTML 4.01 过渡型的文档类型声明就是合法的。

使用合适的元素

HTML 4.01 规范中提供了不少语义丰富的元素,应该把这些元素应用在适合其语义的地方。大多数 Web 开发人员对于常用的 HTML 元素比较熟悉,使用也较多。对于一些不太常见的元素则很少使用,而用其它元素来代替。比如 <div> 和 <span> 就在很多情况下被用来代替其它元素。虽然将 <div> 和 <span> 和 CSS 相结合,都可以达到预期的显示效果,但是这样会削弱文档本身的语义。 代码清单 1 清单 2 中给出两种 HTML 文档的写法。 代码清单 1 中使用 <span> 元素,并通过 class 属性为 header 来表明该 <span> 元素的语义是“标题”。这种情况下,采用 代码清单 2 中给出的做法,使用 HTML 规范提供的 <h3> 元素会更合适。因为 <h3> 本身就已经包含了“标题”的语义,就不需要再通过 class 属性来说明了。

清单 1. 错误的 HTML 元素选择
<style>
 .header {
 font-size : 1.2em;
 }
</style>	

<div class="container"/>
 <span class="header"> 标题 </span>
 <div class="content"> 内容 </div>
</div>
清单 2. 正确的 HTML 元素选择
<div class="container"/>
 <h3> 标题 </h3>
 <div class="content"> 内容 </div>
</div>

避免错误的元素使用

对于 HTML 中的元素,浏览器会有默认的展示样式。比如 <blockquote> 元素,通常来说浏览器会以缩进的方式来显示其中被引用的文本;而 <em> 元素,浏览器则会把其中的文本显示为斜体。这种默认的展示样式会造成一种错误的元素使用方式,即为了达到某种展示效果而使用该元素,而忽略元素本身的语义。比如希望将一段文本以缩进的方式显示,就使用 <blockquote> 元素,即使该段文本并非是引用自外部文档的。

这种方式的问题在于过分依赖于浏览器的默认样式而忽视元素的语义。一旦浏览器的默认样式发生变化或是被其它 CSS 样式所修改,原本预期的展示效果就无法实现。

使用富含语义的 class 属性

HTML 元素的 class 属性为使用 CSS 来修改元素的样式提供了切入点。一个好的 class 属性可以为已有的 HTML 元素增加语义。比如 <h1 class="important"> 中,<h1> 本身的语义是表示标题,而通过使用 important 这样一个 class 属性的值,进一步说明该标题是比较重要的。可以通过 CSS 为该标题添加加粗、不同的颜色等样式来突出该语义。对于类似 <div> 和 <span> 这样并没有附加语义,而只是单纯作为容器使用的 HTML 元素来说,好的 class 属性可以为其添加语义。比如 <div class="summary">,通过 class 属性就为该 <div> 添加语义,说明其表示的是一段摘要。

一个好的 class 属性值应该要说明其对应的 HTML 元素的作用,而不应该说明该元素的展现样式。由于 class 属性会在 CSS 中作为选择器来使用,因此很容易就误用一些表示展现样式的名称。比如 redTextBlueBorder 这样的名称,虽然清晰的描述了其展现样式是红色文字加上蓝色边框,但是并没有描述元素的作用,是不好的名称。如果需要对样式进行修改,比如改成蓝色文字加上红色边框,那么名称也需要相应的修改,变成 blueTextRedBorder。一个好的名称,在所描述的元素的作用没有变化时,即便展现的样式发生改变,就不需要修改。

绕开“灰色地带”

尽管推荐使用表示文档结构和富含语义的 HTML 元素和属性来编写 HTML 文档,但是在有些情况下,不得不使用与展示相关的元素和属性来完成特定的功能。这是实践富含语义的 HTML 中的“灰色地带”。下面列举几个常见的情况:

  • 有序列表元素 <ol> 的属性 start 和 <li> 元素的 value 属性在 HTML 4.01 严格型文档类型声明中是被废弃的。但是这两个属性是用来控制有序列表的数字编号顺序的惟一方式。
  • <iframe> 元素在 4.01 严格型文档类型声明中是不被允许的。
  • <b> 和 <i> 元素虽然是与展示相关,但是在 HTML 4.01 严格型文档类型声明中仍然是合法的。
  • 在很多时候,<table> 元素被用来作为布局的手段。然而从语义上来说,<table> 更适合用来显示表格型的数据。推荐的方式是使用 <div> 元素来进行页面布局。CSS 3 中引入了复杂的网格布局。

正是由于上面所述这些“灰色地带”的存在,通常来说,目前最适用的是 HTML 4.01 过渡型文档类型声明。

之前关于富含语义的 HTML 的介绍,都是从基本元素和属性的角度出发,下面将介绍富含语义的 HTML 组件:微格式。

微格式(Microformat)

微格式(Microformat)是满足特定模式的有组织的 HTML 片断,用来描述网页中富含语义的实体。在编写 HTML 文档时,经常会需要包含某些富含语义的实体,包括人、事件、评论、地理位置和个人简历等。比如在个人博客中经常会包括作者本人的基本信息。微格式定义了描述这些实体的 HTML 应该具有的格式。通过使用微格式,这些实体的语义得以在 HTML 中保留。微格式是富含语义的 HTML 这一指导原则的良好实践。它将对语义的保留提升到了 HTML 片断的层次。微格式使用富含语义的 HTML 元素和 class 属性。下面通过一个实例来说明微格式的用法。

hCard 是一种用来描述人、公司、组织机构和地点的微格式。 代码清单 3 中给出了一个实例。

清单 3. hCard 微格式实例
<div class="vcard">
 <span class="fn">成富</span>
 <div class="adr">
 <span class="type">工作</span>:
 <div class="street-address">东北旺西路8号</div>
 <span class="locality">海淀区</span>, 
 <span class="region">北京市</span>,
 <span class="postal-code">100193</span>
 <div class="country-name">中国</div>
 </div>
 <div class="tel">
 <span class="type">工作</span>8245xxxx
 </div>
 <div class="tel">
 <span class="type">家庭</span>138xxxxxxx
 </div>
 <div>电子邮件: 
 <span class="email">chengfbj@cn.ibm.com</span>
 </div>
</div>

代码清单 3 中,微格式 hCard 使用了 <div> 和 <span> 这两个通用 HTML 元素,加上富含语义的 street-address、postal-code、country-name、tel 和 email 等 class 属性。 代码清单 3 中的 HTML 片断清晰的表达了“人”这样一个实体的语义。Web 开发人员可以使用不同的样式来显示这样一个实体。

在编写 HTML 文档时,如果需要描述的实体已经有相关的微格式的规范,应该按照相应的规范来使用合适的 HTML 元素和 class 属性。更多微格式的信息见 参考资料

至此,关于富含语义的 HTML 的主要内容就已经介绍完毕,下面介绍一些相关的其它话题。

其它话题

下面介绍与富含语义的 HTML 相关的其它话题,主要与可访问性(Accessibility)相关。

可访问性

可访问性指的是网页内容应该可以被残障人士所访问。对于失明的用户来说,他需要使用屏幕阅读器这样的设备来读取网页的内容。富含语义的 HTML 文档可以有效的为屏幕阅读器提供语义信息,从而帮助它更好的将文档的含义传达给用户。由于文档的展示对用户是不可见的,因此文档的语义就显得尤为重要。

比如,在文档中经常需要对一段文字进行着重强调。如果使用与展示相关的元素,可以写成 <b>Text</b>。通常来说,浏览器会用粗体来显示这段文本,从而传达给用户强调的语义。但是对于屏幕阅读器来说,它并不能很好的理解 <b> 所要传达的语义,可能是表示强调,也可能只是用粗体显示的普通文本。但是使用 <strong>Text</strong> 的话就不一样了,因为 <strong> 元素本身就包含了强调的语义,屏幕阅读器可以采用合适的方式来传达出来,比如加重朗读时的语调等。

富含语义的 HTML 文档也能更好的被搜索引擎所理解。

总结

本文详细介绍了目前 Ajax 应用开发中的一个最佳实践“富含语义的 HTML”,即 HTML 文档应该只表示 Web 应用的结构,而不是展示。在编写 HTML 文档的时候,应该尽量使用 HTML 规范中表示文档结构和富含语义的元素和属性。本文中介绍了 HTML 规范的历史以及规范中哪些元素和属性是推荐使用的。与此同时,还给出了一系列编写 HTML 文档时的最佳实践。最后,介绍了微格式以及可访问性相关的内容。

声明

本人所发表的内容仅为个人观点,不代表 IBM 公司立场、战略和观点。


相关主题


评论

添加或订阅评论,请先登录注册

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=Web development
ArticleID=413429
ArticleTitle=使用 Dojo 的 Ajax 应用开发进阶教程,第 2 部分: 富含语义的 HTML
publish-date=07162009