有的网页是遵循标准而创作的,但也有很多不是。即使你不能创建遵循标准的网页,也希望浏览器根据标准来正确显示那些页。目前,大量网页充斥着大量非标准代码,它们仍能正常地工作。事实上,为旧版浏览器设计的大多数代码都能在新版浏览器中正确显示(虽然呈现方式可能有所区别)。这是什么原因呢?事实上,假如严格遵循最新标准,会完全破坏那些页的生存基础。对于任何希望有所作为的浏览器来说,这当然是令人无法接受的。
不同网页的不同呈现模式
现代浏览器包括不同的呈现模式,目的是既支持遵循标准的网页,也支持为老式浏览器而设计的网页。其中,Standards(标准)模式(也就是严格呈现模式)用于呈现遵循最新标准的网页,而Quirks(包容)模式(也就是松散呈现模式或者兼容模式)用于呈现为传统浏览器而设计的网页。另外,注意Mozilla/Netscape 6新增了一种Almost Standards(近似标准)模式,用于支持为标准的某个老版本而设计的网页。
放在网页顶部的doctype声明是让浏览器进入正确呈现模式的关键。浏览器自动切换到恰当的呈现模式,以便正确显示由doctype声明所指定的文档种类。
理论上,这应该是一个非常直观的切换。假如doctype指出当前网页是一个遵循标准(也就是HTML 4+或XHTML 1+)的文档,浏览器就会切换到Standards模式。假如没有指定doctype,或者指定HTML 3.2以及更老的版本,浏览器就切换到Quirks模式。这样一来,浏览器既能正确显示遵循标准的文档,又不至于完全舍弃老式的、与标准不符的网页。
doctype切换的问题
但是,doctype切换是一个不完善的方案。即使你在Web文档中使用了一个doctype声明,浏览器也可能不会采取你希望的呈现模式来显示网页。原因是多方面的,包括形式错误的doctype,以及不同浏览器以不一致的方式来实现doctype切换。下面总结了一些常见的doctype切换问题:
doctype切换也许是让浏览器进入正确呈现模式并正确显示网页的一种有效手段,前提是你注意到了各种浏览器的不一致,并能积极主动地避免各种问题。
Michael Meadhra自Web问世之初便涉足IT行业,目前已出版了30多本书,其中包括How to Do Everything with Dreamweaver MX。( Osborne/McGraw-Hill出版)。