DOCTYPE有什么实际作用吗?

11

可能是重复问题:
DOCTYPE有什么作用?

添加 DOCTYPE 是最佳实践--HTML验证器希望看到它。理论上,它通过声明使用的HTML类型使文档更好。换句话说,这是你应该始终做的事情。

话虽如此,我没有看到任何浏览器使用它的情况。我在各种浏览器中尝试了多种HTML类型,但无法找到一个例子,在添加DOCTYPE后文档呈现不同的情况。

是否有人知道DOCTYPE在浏览器中有任何真正的影响的情况?

这个问题与DOCTYPE是什么?不同,后者不要求提供DOCTYPE在浏览器中具有可观察效果的特定示例。


1
使用文档类型激活浏览器模式:http://hsivonen.iki.fi/doctype/ - Rob
@JukkaK.Korpela的问题“什么是DOCTYPE?”与“是否有已知情况使用DOCTYPE会产生可观察效果?”非常不同。 - Raymond Hettinger
@Raymond Hettinger,这个问题的标题很幽默,“Doctype怎么了”,但问题和答案都很好地涵盖了“真实效果”问题。请看一下问题本身(超越标题)和答案。 - Jukka K. Korpela
2个回答

4

这个标签本身有很大的影响,主要是针对Internet Explorer浏览器,它可以使浏览器更接近规范方式呈现页面(如果文档没有以doctype声明开头,IE会进入quirks模式)。

在许多情况下,只需设置doctype就能解决在IE8或IE9中出现的显示问题。

话虽如此,现在不需要指定精确的doctype,而且您可能已经遵循HTML5标准,只需设置:

<!DOCTYPE html> 

(参见http://webdesign.about.com/cs/doctype/a/aaquirksmode.htm

一个额外的提示:

IE并没有完全遵循HTML5规范,除非你使用补充的meta头信息强制规范。

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge" />

(参见IE9浮动与溢出:隐藏和表宽度100%未正常显示


谢谢。我尝试在许多浏览器中查看带有和不带DOCTYPE的文档,但没有在IE中尝试过。这似乎对IE最为重要,而对其他浏览器则不那么重要。 - Raymond Hettinger

3
是的,DOCTYPE确实有真实的影响:它会改变浏览器的渲染模式。大多数浏览器有两种渲染模式:标准模式和怪异模式。一些浏览器有第三种渲染模式,通常称为“准标准模式”。
  • 不添加DOCTYPE会强制浏览器进入怪异模式
  • 添加strict DOCTYPE可使浏览器进入标准模式
  • 当您使用transitional DOCTYPE时,一些浏览器会进入“准标准”模式
在怪异模式下,浏览器会模仿旧版本并以不同方式呈现框、对齐等。 “准标准”模式是带有不同行为的标准模式,用于模拟旧HTML中使用透明图像在表格中对齐内容的方法。
您可以在Mozilla开发者网络文章中了解更多信息:https://developer.mozilla.org/en-US/docs/Quirks_Mode_and_Standards_Mode?redirectlocale=en-US&redirectslug=Mozilla%27s_Quirks_Mode

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接