DTD(Document Type Definition)是一个XML文档,解释了哪些标签、属性或值对于HTML的一个特定类型是有效的。HTML遵循一定的规则。这些规则包含在一个文档类型定义(Document Type Definition)文件中,或者如大家所知的DTD。每一个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所引起的显示问题。
所幸的是,获得正确的文档类型很简单。你所要知道的就是正在使用哪个HTML版本。目前最流行的HTML和XHTML的版本是HTML 4.01 Transitional和XHTML 1.0 Transitional。这些HTML类型仍然让你使用展示型的标签,如标签,在这方面还提供一个从旧版HTML到新版HTML的过渡:更严格的HTML和XHTML标签。虽然最好不要使用这些标签,但它们在Transitional版中仍然起作用,因此你可以根据自己的情况,逐步淘汰这些旧式标签。在严格版的HTML和XHTML中,有些旧式标签根本不起作用。
注意:一般来说,HTML和XHTML的严格版均不接受仅使网页展现效果好看的标签和属性,如标签和一个段落的置中属性。它们也不接受一些曾经流行的属性,比如一个链接的目标属性——让你在一个新窗口中打开链接。