作为该标题下描述的,有什么不同doctypes可用的和它们意味着什么?我注意到布局看起来有点不同IE7时从

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

是否有任何其他和什么样的效果或影响?

谢谢!

有帮助吗?

解决方案

一个 Doctype, 或 文件的类型声明 associates的文件 文件类型的定义.

文件类型的定义 是一个标准用XML文件。有许多Dtd,对于这两种XML和XHTML文件。XML本身并没有太大的架构或一个非常具体的一套规则,除了要求,一切都会好的形成。你能想到的一个DTD作为一个更具体的 方案文件.

呈现的模式

由于标准的运动,最现代化的浏览器实际上有不同呈现的模式(标准模式, 为呈现你的文件和css根据更近的网标准, 怪癖模式, ,其中浏览器带回了一些呈现的想法,从早期网页)。这些模式制定的目的向后兼容性。广袤的风景的网页,这是创建的第一个时代的网呈现根据规定的时间,而较新的文件可以上诉的新一波的标准。随着时间的推移,新格式是想象,一个相应的DTD可能会被创建。

浏览器中的差异

在一个理想的世界,一个网页,载入通过浏览器读Doctype在顶部,并用它来查找的文件的类型的定义。它将使用的架构,DTD为基础的阅读其他的文件。Doctypes,那么,就必须验证标记的文件。DTD会提供的标准反对,你的文件是要进行验证。

不幸的是,它不是一个理想的世界。浏览器不一定是表现一直在这里,如果他们这样做,一致的行为是不完全符合原来的愿景Doctypes.尽管分析是以独立完成的Doctype,主要浏览器将至少检查Doctype,以确定所呈现的模式。如果你Doctype不存在或者不完整,浏览器可能会呈现在 怪癖模式.对于编写良好、现代化的文件要有正确显示,浏览器应该呈现在 标准模式.Mozilla,野生动物园,以及最近的一些版本的剧院实际上实现一个 几乎标准 模式,这是完全致力于过渡页。

当你改变Doctype和通知的方式变化的一页显示,这是因为将浏览器也可以施加一个稍微不同的规则,当它试图分析的文件。因此,所得到的页面上可能有点不同,取决于是否所有各部分符合DTD,或至少,取决于浏览器,这一数据证明在呈现的模式,doctype建议。

选择一个Doctype

在追求的标准的遵守情况,严格Doctypes应用时可能的。

当写在 XHTML, 这Doctype是共同的:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

当写在 HTML4.1, 这是一个共同的替代:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">

其他一些共同的doctypes XHTML和HTML4中列出在这里,对完整性:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"
"http://www.w3.org/TR/html4/frameset.dtd">

辩论的关于严格和过渡Doctypes

标准的福音传道者都要求网络开发人员停止使用的过渡Doctype上的新网页,而不是使用严格的。再次,这种情况的理论和实践中有一些困难正在核对调节。原来的希望的过渡Doctype的是提供一个中途之家过渡的传统网站向标准的遵守情况。与过渡doctypes、限制因素和属性的字面意思是"较不严格的",因此开发人员将能够得到他们的工作运行,根据标准模式越快,并且相出的悬而未决的分歧的时间。

存在争议,因为它并不总是这么简单对于开发改变Doctype在一个企业的环境。自由职业者的开发商和制造商的小型或中型网站,往往可能更容易确定它们的Doctype并使这种过渡。在一个企业的生产环境的高度要求的基于网络的服务,有本质上更加复杂的依赖关系的遗留系统和3名缔约方代码产品,其本身可能是在路线图拆除或重新设计,但所执行的这种变化必须做到有条不紊地和逐渐递增。

有用的工具

W3C(World Wide Web Consortium)是一个集团发挥积极作用,在确定这些类型的标准。他们维持一个有用的在线工具 http://validator.w3.org/ 核查和验证的文件对他们的标准。还有许多其他3党和工具 浏览器的扩展 与类似的功能。

其他提示

浏览器 不在乎 什么doctype使用(以及,几乎如此),他们使用它的一件事只有一件事:决定哪 呈现的模式 使用。例如见的 外汇歌剧的文件 为真实世界的例子在什么样的算法是用来决定哪些模式使用(我猜是有一些文档,即埋葬的地方,在MSDN太...[这可能是正确的页](http://msdn.microsoft.com/en-us/library/ms535242(VS。85).aspx), 我不知道,对不起).

然而有两个主要模式在大多数浏览器(一些浏览器中有一个 几乎标准模式 太):

  • 怪癖模式 (使用时,没有"正确"的doctype被发现,"正确的"从浏览器的观点):尝试呈现的文件,作为某些旧版本的即将做的(其中一个最重要的差异,即影响呈现的大多数,是一些利用浏览器 即框模型的错误 在此模式),
  • 标准模式 (用当浏览器发现了一个doctype它认为正确的):尝试做为标准说。

你可以使用(非标准) document.compatMode 酒店在前面提到的浏览器来检查模式,这是用来呈现的前文件。

(注意上XHTML:我以为你服务你为HTML文件(text/html),如果你为您服务的文档作为XHTML(可能 application/xhtml+xml)最浏览器中跳跃进入标准模式的直接和不关心doctype在所有据我所知.)

顺便说一句:建议(或者,什么看起来像一个项建议)中的其他答复被破坏, 过渡 DTD不应该用新的文件。总是使用严格的(术语"严格"是一种误导性的,应该是"默认"或其他什么东西非可怕的),期限:

作者应该使用严格DTD当可能的,但是可以使用的过渡DTD当的支持呈现属性和要素是必需的。-- HTML4.01:22.过渡文件类型的定义.

我们建议,作者写的文件,符合严格的DTD而不是其他Dtd定通过本说明书。-- HTML4.01:4一致性:要求和建议

并且有许多博客上张贴关于这一点,例如 没有更多的过渡DOCTYPEs,请 (从2006年起,但是 一些, 显然,仍有问题:).

此后开始的时候指出的是,浏览器不在乎你怎么选择,然后发展成为一个夸夸其谈的如何选择正确的DTD,有趣的...但如果你要花费(/废?) 时间和能源选择a DTD你可以选择正确的(从一个HTML4.01标准的角度)。

, 你可以忽略所有这一切,使用以下替代, 很快 无论如何:

<!doctype html>

(这个答案 "任何原因不开始采用HTML5doctype?"是一种相关的最后一部分。)

有一个很大的错误信息左右doctypes.的混乱来源于这样的事实,doctypes最初的目的是为一个目的(以识别DTD,ie。HTML版本的使用),但在真实世界浏览器是用于一个完全无关的目的。

Doctype声明仅用于 有一件事 在今天的浏览器,这是之间的切换 怪癖 渲染模式以及 标准 呈现的模式CSS。所以基本上这是一个CSS-事情,不HTML的事情。

怪癖模式呈现的是向后兼容的一些老呈现的错误在旧的浏览器,而是主要用于遗产的内容你不想解决。新内容应该总是使用标准模式,因为它使得更多的正确和一贯之间的浏览器。(仍然呈现差异之间的浏览器时使用标准模式,但是还有更糟的怪癖模式。)

它不会 任何区别你是否选择一个HTML或XHTML docytype,既不会使任何差异,如果选择严格或过渡doctype.所呈现的模式基本上是选择这样的:

从历史上看doctypes目的在于宣布哪个版本和子集HTML。HTML4定义的几个版本,其中"过渡性"允许一些因素和特性(如字体)不允许在"严格".浏览器理论上可以处理"严格"的文件不同于"过渡"-文件。然而 没有浏览器实际上做这个.

编辑:scunliffe指出,IE8会尚未呈现另一个模式,"IE8标准"的模式。但是据我所知这种模式不是由doctype而是由一元的标签。

基本上,doctype决定了IE的疯狂程度。

如果您未将其设置为XHTML,或“严格”当涉及到IE时,你将生活在一个充满伤害的世界中(即使你设置它,你仍然会讨厌IE,但它确实让它变得更好)。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top