我最近在这里问了一个问题,解决方案很简单:
您需要向页面添加doctype。这应该为您解决问题。
现在,我的页面在没有doctype(IE除外)的每个浏览器中都能正常工作。 IE是否需要doctype(这是IE唯一的东西)并且其他浏览器只是假设 OR 或者它正在做我没有看到的事情。
它的功能是什么?它是如何工作的?
答案 0 :(得分:52)
所有浏览器都需要doctype。如果没有DOCTYPE
,则强制浏览器在Quirks Mode中呈现。
但是,DOCTYPE
仅被determining dialect and parsing中的浏览器部分使用,即使这是目的。 This is why HTML5 has reduced the DOCTYPE
to simply:
<!DOCTYPE html>
<强> 2.2。 DOCTYPE
HTML5的HTML语法要求指定DOCTYPE以确保浏览器以标准模式呈现页面。 DOCTYPE没有其他用途,因此对XML是可选的。具有XML媒体类型的文档始终以标准模式处理。 [DOCTYPE]
DOCTYPE声明为
<!DOCTYPE html>
,在HTML语法中不区分大小写。早期版本的HTML中的DOCTYPE较长,因为HTML语言是基于SGML的,因此需要引用DTD。使用HTML5不再是这种情况,仅需要DOCTYPE为使用HTML语法编写的文档启用标准模式。浏览器已为<!DOCTYPE html>
执行此操作。
答案 1 :(得分:10)
Doctype做了两件事。
如果没有doctype,或者有一个无法识别的文档类型,那么它会使用“quirks”模式并尽可能地解释文档。如果有一个doctype,并且它识别它,那么它遵循标准。渲染的结果可能会有所不同,具体取决于它如何解释文档。
答案 2 :(得分:5)
为什么?
为什么要指定doctype?因为它 定义您的(X)HTML的哪个版本 文件实际上正在使用,而且这个 是一个重要的信息 某些工具需要处理 文档。
例如,指定doctype 您的文档允许您使用工具 例如要检查的标记验证器 你的(X)HTML的语法。这样的工具 如果他们不这样做将无法工作 知道你是什么样的文件 使用
但最重要的是 与大多数浏览器家庭,a doctype声明会产生很多 猜测不必要,并因此 触发“标准”渲染模式。
答案 3 :(得分:2)
您应该有任何浏览器的DOCTYPE。它告诉浏览器如何解释html和css。这就是为什么html4和html5有不同的定义(和xhtml一样)。对验证都非常重要。
IE将要做的是将文档放入它所谓的“怪癖模式”,这基本上忽略了CSS应该(通过现代定义)行为的整个规则堆。这是一个good summary of the issue。它可以追溯到非标准化CSS支持的糟糕时期
答案 4 :(得分:2)
浏览器至少需要在所谓的标准模式下呈现。请参阅John Resig关于html 5 doctype的文章:http://ejohn.org/blog/html5-doctype/。现在,如果您希望您的浏览器不使用标准并像1990年一样渲染并且不添加任何东西,您将看到浮动和其他现在标准项目无法正常工作。如果您希望根据特定标准对页面进行渲染/验证,那么您可能希望在doc类型中添加更多内容,但这不是必需的。
答案 5 :(得分:1)
从W3Schools,doctype是“向Web浏览器发出关于页面编写的标记语言版本的指令”。 (http://www.w3schools.com/tags/tag_doctype.asp)
如果您不包含doctype,浏览器可能会假设您使用的语言与实际语言不同,导致其呈现错误。
答案 6 :(得分:1)
来自W3Schools。com:
doctype声明不是HTML 标签;这是对网络的指导 关于什么版本的浏览器 标记语言页面是写的 英寸
有一些不同的doctypes,更改它们可以彻底改变页面呈现的方式。
答案 7 :(得分:0)
doctype声明应该是 HTML文档中的第一件事, 在标签之前。
doctype声明不是HTML 标签;这是对网络的指导 关于什么版本的浏览器 标记语言页面是写的 英寸
doctype声明是指a 文档类型定义(DTD)。该 DTD指定标记的规则 语言,以便浏览器呈现 内容正确。