为什么我们需要HTML/JSP页面中的文档类型?没有它,页面似乎就可以工作。为什么我们需要DOCTYPE到HTML/JSP页面?
回答
Zeldman wrote
每HTML和XHTML标准,一个 DOCTYPE(以下简称“文档类型声明 ”)通知验证 哪个版本的(X)HTML你使用, 和必须出现在每个网页的顶部 。 DOCTYPE是一个关键 兼容网页的组成部分:您的 标记和CSS不会验证没有 他们。
,并看看24条途径 “Transitional vs. Strict Markup”
在未来的HTML 5,你只需要声明
<!DOCTYPE HTML>
查看http://www.quirksmode.org/css/quirksmode.html的全面讨论;简而言之,doctype应该引发页面渲染和行为的quirks/strict模式。
不幸的是,人们开始投入文档而不知道他们在做什么,从而减少了它们的有用性。
Escpecially微软IE有一定的一大难题文档类型或完全缺乏文档类型。 At the bottom of this page您可以结合某些文档类型找到浏览器行为的简要概述。有三种标准的行为:
- Q - Quirksmode。你真的不想那么做。它在IE中触发box model bug。然后,CSS
width
和height
错误地覆盖了padding
和border
。 - A - 几乎标准模式。价格合理,只有垂直大小的表格单元格不符合CSS2规范。如果你想避免mysterious gaps of images in table cells有用。
- S - 标准模式。浏览器试图完全符合w3 HTML/CSS标准。首选模式,因为它是唯一的模式,您可以更少或更确定您的网站在所有浏览器中看起来完全一样。
下面是一段HTML,它演示了IE中的盒子模型错误。 Copy'n'paste'n'run它。在出现<!DOCTYPE html>
时,您会看到一个矩形。如果没有doctype行,您会看到一个真正的广场。
<!DOCTYPE html>
<html lang="en">
<head>
<title>Remove DOCTYPE to trigger quirksmode</title>
<style>
#box {
background: yellow;
width: 100px;
padding: 20px;
border: 20px solid black;
margin: 20px;
}
</style>
</head>
<body>
<div id="box">box</div>
</body>
</html>
当你想要一个“pixelperfect”网页设计时,这个IE bug的影响是最引人注目的。
当然,所有的html文档都需要DOCTYPE来声明html的版本,并告诉浏览器如何翻译html 这样你就可以避免很多浏览器的bug。
当您在页面上设置DOCTYPE时,会强制浏览器进入符合标准的模式,该模式会强制执行更严格的呈现规则。
如果你不使用它,IE可能会退回到怪癖模式,这可能会导致页面显示问题。
doctype它是一个向浏览器发出有关使用标记语言版本的指令。 doctype启用html属性。
- 1. 为什么我们需要fieldset标签?
- 2. 为什么我们需要RIA?
- 3. 为什么我们需要.htaccess的worpdress?
- 4. 为什么我们需要9补丁?
- 5. 为什么我们需要在JavaScript
- 6. 我们为什么需要纤维
- 7. 为什么我们需要BeginGetResponse和BeginRead?
- 8. 为什么我们需要TensorFlow tf.Graph?
- 9. 为什么我们需要Bower和Nuget?
- 10. 为什么我们需要ng-click?
- 11. 为什么我们需要`ngDoCheck`
- 12. 为什么我们需要设置SONAR_RUNNER_OPTS?
- 13. 为什么我们需要Anaconda 2.7?
- 14. 为什么我们需要mktemp?
- 15. 为什么我们需要ClassMethods和InstanceMethods?
- 16. 为什么我们需要ioc容器
- 17. 为什么我们需要RBAC许可?
- 18. 为什么我们需要scalaz.stream迭代?
- 19. 为什么我们需要Buffer.isBuffer方法?
- 20. 为什么我们需要WCF
- 21. 为什么我们需要addRequestHeader方法?
- 22. 为什么我们需要编写log.isDebugEnabled?
- 23. 什么是仿函数,为什么我们需要它们?
- 24. 装配需要什么?为什么我们使用它们?
- 25. 为什么我们需要虚拟桌面?
- 26. 为什么我需要界面?
- 27. 为什么我需要查询界面?
- 28. 虽然我们有Swing,但为什么我们需要JavaFX?
- 29. Windows上的Spark - 什么是winutils,为什么我们需要它?
- 30. 什么是OWASP?为什么我们需要这个?