HTML遵循一定的规则。这些规则包含在一个文档类型定义(Document Type Definition)文件中,或者如大家所知的DTD。DTD是一个XML文档,解释了哪些标签、属性或值对于HTML的一个特定类型是有效的。每一个HTML版本,都有一个对应的DTD。现在你可能会问:“所有这些和CSS又有什么关系呢?”
如果想让网页中的所有内容都在网页浏览器上正确、一致地显示,就得告诉网页浏览器你正使用HTML或者XHTML的哪个版本,包括一个网页开头处的文档类型声明(doctype declaration)是什么意思。这个文档类型声明是在HTML文件的第一行,不仅定义你正使用的HTML版本(比如HTML 4.01 Transitional),而且指向网页中适当的DTD文件。当键错文档声明时,你会使大部分浏览器进入一个叫怪异模式(Quirks Mode)(译注1)的警告状态。
怪异模式(Quirks Mode)是浏览器制造商为使他们的软件运行起来就像大约1999年(Netscape 4和Internet Explorer 5时代)时的浏览器所采用的方法。如果一个现代浏览器遇到一张没有正确文档类型的网页,它就会以为:“嗯,这张网页一定是很早很早以前用HTML编辑器写的。我得假装自己是一个真正很旧的浏览器来显示网页,就像那些bug重重的旧浏览器所显示的那样。”这就是为什么当没有一个正确的文档类型时,你用CSS进行样式设置的可爱网页,可能看起来并不像它根据当前的标准所应该显示的样子。当你在浏览器上检测时,无意中用怪异模式(Quirks Mode)浏览到你的网页,你可能会停止尝试去修正与不正确的文档类型有关、而不是不正当使用HTML或者CSS所引起的显示问题。
注意:想了解更多关于怪异模式的相关信息,请访问www.quirksmode.org/index. html?/css/quirksmode.html 和 http://hsivonen.iki.fi/doctype/。
所幸的是,获得正确的文档类型很简单。你所要知道的就是正在使用哪个HTML版本。最可能的是,你已经用HTML 4创建了网页。你甚至可能已经开始给你的网站使用XHTML(见第5页)。
目前最流行的HTML和XHTML的版本是HTML 4.01 Transitional和XHTML 1.0 Transitional。这些HTML类型仍然让你使用展示型的标签,如标签,在这方面还提供一个从旧版HTML到新版HTML的过渡:更严格的HTML和XHTML
标签。虽然最好不要使用这些标签,但它们在Transitional版中仍然起作用,因此你可以根据自己的情况,逐步淘汰这些旧式标签。在严格版的HTML和XHTML中,有些旧式标签根本不起作用。
注意:一般来说,HTML和XHTML的严格版均不接受仅使网页展现效果好看的标签和属性,如标签和一个段落的置中属性。它们也不接受一些曾经流行的属性,比如一个链接的目标属性——让你在一个新窗口中打开链接。
如果你正使用HTML 4.01 Transitional,就要在创建的每张网页的开头处键入下列文档类型声明:
XHTML 1.0 Transitional的文档声明也与此相似,但它指向一个不同的DTD。给开始的标签添加一些代码来识别网页所用的语言,这也是个好主意,就像这样:
http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
注意:如果你正在给网页使用框架(frame),那么你就要给框架设置使用一个文档类型。请见W3C网站中正确的文档类型列表清单:www.w3.org/QA/ 2002/04/valid-dtd-list.html。
如果这整个讨论正让你头疼且累得合不上眼,那么只要确保使用以上所列的正确的文档类型,并且始终将它放在HTML文件的第一行(恰好在标签的前面)就行了。如果你想要一个基本的模板,便于在创建HTML或者XHTML网页时使用,请访问本书的网站:www.sawmac.com/css/。事实上,使用正确文档类型来创建一个空白的HTML网页并保存在你的计算机上,是一个好主意。这样每当你需要创建一个新网页的时候就从它那里进行拷贝。使用一个HTML检验器,就像在第22页方框中所述的那样,也是确保你正确键入文档类型声明的一个好办法。
注意:大部分可视的网页工具如Dreamweaver、GoLive和FrontPage,在创建一张新网页时都会自动添加一个文档类型声明。许多智能型的HTML文本编辑器都有添加文档类型的快捷方式。
本文作者:佚名 来源:Builder.com
CIO之家 www.ciozj.com 微信公众号:imciow