html5系列2-3 : DOCTYPE与渲染模式(三)
在2-2中我们提到了HTML 4.01与XHTML 1.0的六种文档类型。其中,XHTML 1.0的三个版本分别对应了HTML 4.01的三个版本。其实,W3C(World Wide Web Consortium)推出XHTML的目的是取代HTML。这里不得不提XHTML的两大目标:
(1)在文档结构和表示形式之间创建更明显的分离。
(2)将 HTML 重新表示为 XML 的应用程序。
第一点很好理解:就是去除<font> 之类的元素和 bgcolor 之类的属性,因为这些元素和属性完全用于描述文档的外观,它们与文档的结构没有任何关系。W3C 一直在努力使 Web 站点设计人员和开发人员摒弃特定标记应当具有特定外观这一观念。例如,您可能会认为 <h1> 标记(标题标记)的用途是在页中呈现大的加粗文本。这实际上是错的。<h1> 标记用来在文档中标记标题而不是其他任何东西。您不应当试图使用诸如 <h1> 标记之类的页元素来控制 Web 页的外观。相反,您应当通过使用层叠样式表来指示 Web 页的外观。而且,您所使用的层叠样式表应当是外部层叠样式表。请使用标记和属性来标记文档的结构,而使用样式表来控制文档的表示形式。
第二点也很好理解:迫使 HTML 开发人员遵守更为严格的 XML 规则。按照 W3C 的说法,“XHTML 1.0 是 HTML 4.01 的作为 XML 1.0 应用程序的修订”。换句话说,使用 XHTML 生成 Web 页时,实际上是在创建 XML 文档。XML 文档具有比 HTML 文档更严格的语法。例如,XML 区分大小写,所有 XML 属性都必须放在引号内,而且 XML 标记不能重叠。强迫 Web 站点开发人员和设计人员遵守有更高要求的语言规则最大的好处是编写的页面具有更高的跨浏览器、跨设备和跨操作系统兼容性。
看了上面的第二点,其实有一个问题还是可以深究的:为什么严格规范的页面具有更高的跨浏览器、跨设备和跨操作系统兼容性?
如果在浏览器中打开传统的 HTML 页,即使该页面的 HTML标签一团糟,浏览器也将千方百计地呈现该页。例如,Internet Explorer(以及 Firefox 和 Opera)能够很好地显示下面的 HTML 页:
<i><B>this is bold and italic</I> and this is bold </body></HTML>
Internet Explorer 会恰当地显示该页 — 即使该页缺少 <html> 和 <body> 开始标记,<b> 标记不具有匹配的结束标记,并且开始和结束 <i> 标记的大小写不一致。所有主要的浏览器都能适应几乎任何 HTML 标记“混合物”,并且不顾一切地呈现一些内容。
浏览器的这种适应行为是危险的,因为不同的浏览器(或相同浏览器的不同版本,或在不同操作系统上运行的相同浏览器)都可能以不同方式呈现错乱的 HTML。实际上,对于最新版本的 Internet Explorer、Mozilla Firefox 和 Opera 而言,它们呈现无效 HTML 的方式惊人地一致。但是,一旦开始违反游戏规则,就不会得到任何保证。
然而,如果用 XHTML 更严格的规则编写 Web 页,那么 Web 页就更有可能以一致的方式与当前浏览器协作,并且它们将继续与当前浏览器的未来新版本协作。对于任何公司而言,几乎都不具备针对每个浏览器、在每个操作系 统和每个设备上测试其 Web 站点的资源。如果按照 Web 标准编写页面,那么就不必具有这样的资源。
接着是本讲的最后一个问题:既然XHTML 1.0的三个版本分别对应了HTML 4.01的三个版本,并且XHTML 1.0 是 HTML 4.01 的作为 XML 1.0 应用程序的修订,那么 XHTML 1.0 的三个版本又各自具有怎样的特色呢?
XHTML 1.0 Transitional 包含 HTML 4.01 Transitional 中的全部标记和属性。引入 XHTML 1.0 Transitional 标准的目的是,使现有 HTML 设计人员和开发人员无需经历太多的痛苦就能迁移到 XHTML。
XHTML 1.0 Strict 与 XHTML 1.0 Transitional 的不同之处在于,它在文档结构和表示形式之间实施了一种更为明显的分离。与 XHTML 1.0 Transitional 不同,XHTML 1.0 Strict 强迫您使用层叠样式表来控制页的外观。
XHTML 1.0 Frameset 文档意在成为使用 <frameset> 标记将浏览器划分为多个框架的文档(XHTML 1.0 Transitional 和 Strict 页不能包含 <frameset> 标记)。
如果想要了解更多XHTML1.0的内容,可以查看文章 http://www.w3.org/TR/xhtml1/
备注:该博文为原创博文,如果转发请注明出处。(max.li)