答案:多年以来,HTML只是在不断变大,却从未变小,因为新版本必须维护向后兼容性。这一情况将得以改变。XHTML 2.0的第一个工作草案于2002年8月5日发布,一大新闻就是取消了向后兼容性;该语言终于得以继续发展。那么,作为一名开发人员您将得到什么回报呢?健壮的表单和事件表现如何呢?它们是研究不需要大量 JavaScript 的框架以及甚至层次结构菜单的更佳方法。
本文概述了 XHTML 2.0 中的新增功能以及将来可能会如何使用它。读者应该熟悉 HTML 和/或 XHTML 1.0。熟悉级联样式表(Cascading Style Sheet (CSS))是有帮助的,但不是必需的。告别向后兼容性,引入结构 当万维网联盟(World Wide Web Consortium (W3C))于 2002 年 8 月 5 日发布 XHTML 2.0 的第一个工作草案时,最让人吃惊的是:与其先前的版本不同,它不是向后兼容的。对于先前的发行版,如从 HTML 4.01 转到 XHTML 1.0 以及后来从 XHTML 1.0 到 XTHML 1.1,变化都是添加一些内容;可以读取 XHTML 1.0(过渡的)文档的浏览器也可以理解 HTML 4.01 文档。而 XHTML 2.0 不是那样的。
如果您在两年前宣布我们今天将研究不带 img 标记或 bold 标记的 HTML 版本,那么大多数 Web 开发人员都会用怀疑的眼光看着您。然而,现在就是这样。除了彻底替换表单和框架外,XHTML 2.0 还除去了 b、i 和img标记(以及 big、small 和 tt),甚至不赞成使用br,以准备从将来的发行版中除去它。但这是为什么呢?
原因在于大多数标记都是表示性的。它们的唯一目的就是给予浏览器指令,规定有关其内容应该如何显示,但却完全未提供有关其内容是什么的信息。例如,请考虑下面两个句子:
Presentational elements are, for the most part, gone.
和
Presentational elements are, for the most part, gone.
在没有样式表的情况下,这两个句子在浏览器中看起来是一样的,但只有第二个句子提供了有关原因的信息。事实上,从一开始 em(强调)和 strong 标记就出现在 HTML 中了,但多年以来作者们基本上已经忽略了它们,而专注于表现形式,这是以牺牲内容为代价的。
但这并不意味着只要您想使某些内容变成粗体或斜体,就应该将它们硬塞进这两个标记中。相反,除去表示性元素的整个目的是设法完成 CSS 的发明者的初衷,即应该根据内容所表示的东西来标记内容,而样式表应该用于美化内容。例如,清单 1 使用类别(class)来指出内容类型。
清单 1. 使用类别指定内容类型
Notice
Employees should take note of the following important dates:
- 8/28/2002 (Progress reports due)
- 9/1/2002 (Labor Day)
- 10/28/2002 (Final reports due)
在该页面中,日期类型可以由内容本身来确认,浏览器可以使用类别信息来决定如何为其设计样式,如图 1 中所示。图1. 类别可以确定显示哪一类内容,样式表可以对它进行适当的格式化。
用这种观点研究它:断开(br)标记的目的无外乎是为了显示,因为实际上它并无任何内容。XHTML 2.0 不赞成使用 br 标记,而提倡使用 line 标记。line 标记指定一种特殊的内容:通常是以后跟换行和回车这种方式呈现的一行文本或其它内容。例如,文本:
public class HelloWorld {
public static void main (String[] args){
System.out.println("Hello world!");
}
}
变成
public class HelloWorld { public static void main (String[] args){System.out.println("Hello world!"); } } [page_break]这样,文档就有了一个表示行的实际对象,同样,段(p)标记表示一段内容。
为什么所有这些都很重要呢?因为 Web 不仅正日益成为人与人之间通信的场所,而且还日益成为软件应用程序(如服务器和搜索引擎索引器)之间进行通信的场所。而且,每个人(或者说几乎每个人)都使用相同浏览器的时代已经一去不复返了。开发人员正不断为不同设备(如 PDA 和移动电话)重新设计内容。语音触发的(voice-activated)系统已经离我们不远了。内容的结构意义正变得几乎与内容本身一样重要。
节 XHTML 2.0 添加了节(section)和标题(heading)。HTML 一直都包含编号的标题 — h1 到 h6,直到 2002 年 8 月 5 日的工作草案,还未将其撤消,但这只是一个时间问题。而 XHTML 2.0 使用通用标题和节。例如,可以嵌套节,从而赋予标题含义。以前用编号标题呈现的文档(清单 2):
清单 2. 文档中的编号标题
The Web's future: XHTML 2.0
by Nicholas Chase
Good-bye backward compatibility, hello structure
Why backward compatibility is over.
Presentation versus Structure
Using style sheets rather than presentational elements.
Lines
Line breaks are deprecated.
Sections
Creating more reasonable sections.
Navigation lists and menus
Hierarchical menus.
Links, links, everywhere
Adding links.
可以用通用标题和节替换(清单 3):
清单 3. 通用标题和节