2010-06-30 60 views

回答

8

Zeldman wrote

每HTML和XHTML标准,一个 DOCTYPE(以下简称“文档类型声明 ”)通知验证 哪个版本的(X)HTML你使用, 和必须出现在每个网页的顶部 。 DOCTYPE是一个关键 兼容网页的组成部分:您的 标记和CSS不会验证没有 他们。

,并看看24条途径 “Transitional vs. Strict Markup

在未来的HTML 5,你只需要声明

<!DOCTYPE HTML> 
1

查看http://www.quirksmode.org/css/quirksmode.html的全面讨论;简而言之,doctype应该引发页面渲染和行为的quirks/strict模式。

不幸的是,人们开始投入文档而不知道他们在做什么,从而减少了它们的有用性。

8

Escpecially微软IE有一定的一大难题文档类型或完全缺乏文档类型。 At the bottom of this page您可以结合某些文档类型找到浏览器行为的简要概述。有三种标准的行为:

  • Q - Quirksmode。你真的不想那么做。它在IE中触发box model bug。然后,CSS widthheight错误地覆盖了paddingborder
  • 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的影响是最引人注目的。

0

当然,所有的html文档都需要DOCTYPE来声明html的版本,并告诉浏览器如何翻译html 这样你就可以避免很多浏览器的bug。

0

当您在页面上设置DOCTYPE时,会强制浏览器进入符合标准的模式,该模式会强制执行更严格的呈现规则。

如果你不使用它,IE可能会退回到怪癖模式,这可能会导致页面显示问题。

看到这个链接Remember to declare your doctype

0

doctype它是一个向浏览器发出有关使用标记语言版本的指令。 doctype启用html属性。