前几天,在做一个页面时,引入了样式文件,但是不起作用。后来跟踪发现竟然是DOCTYPE的设置问题。例如下面的HTML:
<div class="testDiv">test
<table>
<tr>
<td>Table Content</td>
</tr>
</table>
</div>
在testDiv中设置了字体的样式,但是浏览时(IE6和FireFox1.5),发现test文本已经显示了testDiv中规定的样式,但Table Content却没有。去掉页面中的"
http://www.w3.org/TR/html4/loose.dtd"设置后,两文本都按testDiv的样式显示了。下面引入一篇对DOCTYPE详细解释的文章。
原文作者: 周靖 译
虽然大多数Web文档的顶部都有doctype声明,但很多人都没有注意它。它是在你新建一个文档时,由Web创作软件草率处理的众多细节之一。
虽然doctype被许多人忽视,但在遵循标准的任何Web文档中,它都是一项必需的元素。doctype会影响代码验证,并决定了浏览器最终如何显示你的Web文档。
doctype的作用doctype声明指出阅读程序应该用什么规则集来解释文档中的标记。在Web文档的情况下,“阅读程序”通常是浏览器或者校验器这样的一个程序,“规则”则是W3C所发布的一个文档类型定义(DTD)中包含的规则。
每个DTD都包括一系列标记、attributes和properties,它们用于标记Web文档的内容;此外还包括一些规则,它们规定了哪些标记能出现在其他哪些标记中。每个Web建议标准(比如HTML 4 Frameset和XHTML 1.0 Transitional)都有自己的DTD。
假如文档中的标记不遵循doctype声明所指定的DTD,这个文档除了不能通过代码校验之外,还有可能无法在浏览器中正确显示。对于标记不一致的问题,浏览器相较于校验器来说更宽容。但是,
不正确的doctype声明经常导致网页不正确显示,或者导致它们根本不能显示。
选择正确的doctype为了获得正确的doctype声明,关键就是让DTD与文档所遵循的标准对应。例如,假定文档遵循的是XHTML 1.0 Strict标准,文档的doctype声明就应该引用相应的DTD。另一方面,如果doctype声明指定的是XHTML DTD,但文档包含的是旧式风格的HTML标记,就是不恰当的;类似地,如果doctype声明指定的是HTML DTD,但文档包含的是XHTML 1.0 Strict标记,同样是不恰当的。
有的时候,也可以根本不使用一个doctype声明。如果没有指定有效的doctype声明,大多数浏览器都会使用一个内建的默认DTD。在这种情况下,浏览器会用内建的DTD来试着显示你所指定的标记。对于一些临时性的、匆忙拼凑的文档(这种文档有许多),你确实可以考虑省略doctype声明,并接受浏览器的默认显示。
完全可以从头编写一个doctype声明,并让它指向自己选择的一个DTD。然而,由于大多数Web文档都需要遵循由W3C发布的某个国际公认的Web标准,所以那些文档通常都要包含以下标准doctype声明之一:
HTML 2:
HTML 3.2:
HTML 4.01 Strict:
"http://www.w3.org/TR/html4/strict.dtd">
HTML 4.01 Transitional:
"http://www.w3.org/TR/html4/loose.dtd">
HTML 4.01 Frameset:
"http://www.w3.org/TR/html4/frameset.dtd">
XHTML 1.0 Strict:
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
XHTML 1.0 Transitional:
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
XHTML 1.0 Frameset:
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
XHTML 1.1:
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
XHTML 1.1 plus MathML plus SVG:
"-//W3C//DTD XHTML 1.1 plus MathML 2.0 plus SVG 1.1//EN"
"http://www.w3.org/2002/04/xhtml-math-svg/xhtml-math-svg.dtd">
除了上面列出的doctype声明,具有特殊要求的一些文档还使用了其他几种声明。
doctype声明通常是文档的第一行,要在标记以及其他文档内容之前。注意,在XHTML文档中,doctype的前面偶尔会出现一条XML处理指令(也称为XML prolog):
为了确保网页正确显示和顺利通过验证,使用正确的doctype是关键。与内容相反的、不正确的或者形式错误的doctype是大量问题的罪魁祸首。在未来的专栏文章中,我还会具体解释如何诊断及纠正这些问题。
用DW设计网页时,新建一个文件,看代码最前面总要出现一个下面的东东,
"http://www.w3.org/TR/html4/loose.dtd">
这个是DW自动在网页文件页增加了DTD信息.可以删.
删除后,浏览器会使用的默认DTD.
分享到:
相关推荐
DOCTYPE>` 是一个非常重要的声明,它的主要作用是告诉浏览器文档遵循的HTML或XHTML规范版本,以便浏览器能够正确地解析和渲染页面内容。这个声明位于HTML文档的开头,且必须在 `<html>` 标签之前。 `<!DOCTYPE ...
DOCTYPE声明位于HTML文档的顶部,通常在`<html>`标签之前,告诉浏览器如何解析页面。 在不同的HTML版本中,DOCTYPE的声明方式有所不同,这会影响到浏览器如何呈现网页。以下是一些常见的DOCTYPE声明: 1. **...
DOCTYPE>并不是HTML标签,它声明web浏览器关于页面使用哪个 HTML 版本进行编写的指令。 在 HTML 4.01 中,<!DOCTYPE> 声明引用 DTD,因为 HTML 4.01 基于 SGML。DTD 规定了标记语言的规则,这样浏览器才能正确地呈现...
DOCTYPE文档类型声明是HTML或XHTML文档中的一个重要组成部分,它位于文档的最顶部,用于告知浏览器文档遵循的规范和标准。DOCTYPE声明不是HTML或XHTML的一部分,而是引用了一个外部的文档类型定义(DTD),这个DTD...
这个声明非常重要,因为它会影响浏览器如何解析和渲染页面内容。`<!DOCTYPE>`标签没有闭合标签,即它不需要以`>`结束。 DOCTYPE声明的格式通常如下: ```html <!DOCTYPE 类型 PUBLIC "公开标识符" "系统标识符"> `...
标题中的"DOCTYPE.rar_page"可能是指一个HTML页面的DOCTYPE声明被存入了一个名为"DOCTYPE.rar"的压缩文件中,而".rar_page"可能是某种特定的文件结构或者命名约定,表示这是压缩包内的一个页面文件。描述提到的是...
正确使用DOCTYPE声明能确保浏览器按照预设的规则解析和展示页面。如果想要验证文档是否符合所声明的DTD,可以使用W3C提供的在线验证工具,如XHTML验证器,来检查文档的语法和结构是否正确。 总结起来,DOCTYPE声明...
DOCTYPE声明在HTML和XHTML文档中起着至关重要的作用,它告诉浏览器文档应该按照哪种标准或模式进行解析。DOCTYPE声明位于文档的最顶部,通常在`<html>`标签之前。它的主要作用是触发浏览器的“呈现模式”,决定...
DOCTYPE的作用在于指导浏览器如何解析HTML或XML文档,确保它们按照预设的规则渲染页面。本文将深入探讨DOCTYPE在IE下的文本模式以及其对页面显示的影响。 首先,DOCTYPE声明不是HTML元素,而是一个指令,它告诉...
HTML Doctype,全称为Document Type Declaration,是HTML文档开头的一个声明,它的主要作用是告诉浏览器应当按照哪个HTML或XHTML规范来解析页面内容。这个声明对于网页的正确显示至关重要,因为它直接影响到浏览器的...
7. **浏览器兼容性**:这个例子中的代码考虑了火狐(Firefox)和IE浏览器的兼容性,使用的是XHTML标准,同时JavaScript代码也是通用的,可以在多种浏览器环境中运行。 总结来说,这个HTML页面展示了如何使用HTML、...
DOCTYPE声明位于文档的开头,即`<html>`标签之前,其主要作用是确保浏览器以正确的标准模式解析和渲染页面。 DOCTYPE标签的语法通常如下: ```html <!DOCTYPE html PUBLIC "public_identifier" "URL"> ``` 其中,...
在讨论HTML DOCTYPE的缩写之前,我们先来了解一下DOCTYPE声明的作用以及其在HTML文档中的位置。DOCTYPE声明是一个必须位于HTML文档最顶部的指令,它的作用主要是告诉浏览器文档所使用的HTML或XHTML版本是什么。这样...
不同浏览器在怪异模式下的表现可能会有所差异,导致页面在不同的浏览器中显示效果不一致,给开发者带来困扰。 为了避免这种情况,开发者通常会在文档开头使用DOCTYPE声明,以指定浏览器应使用哪种标准进行解析。...
在JavaScript中,经常会出现需要从子页面(通常是`iframe`中的页面)访问或操作父页面元素的情况。本文将详细介绍如何实现子页面调用父页面ID,并对其进行操作。 #### 理解基本概念 在讨论如何实现这一功能之前,...
DOCTYPE>声明不仅影响页面在不同浏览器中的显示效果,而且能够指导浏览器以标准模式解析和渲染页面,从而避免样式和布局的不一致性。了解和正确使用<!DOCTYPE>声明对于开发标准化的Web文档至关重要。在当今互联网...
在给定的文件中,我们看到了一个HTML文档的结构,其中包含了HTML5的DOCTYPE声明、元数据、样式表以及JavaScript代码。这个文档似乎是一个简单的网页,具有动态粒子效果的背景和一个固定在屏幕中央的文本元素。以下是...
HTML版本声明DOCTYPE标签是HTML文档中用来指定文档类型和版本的指令,它位于文档的最前面,告知浏览器该文档所遵循的HTML规范。DOCTYPE声明不是HTML标签,而是一条浏览器指令,用于告诉浏览器这个文档是以什么版本的...