如果我们不包含doctype并且澄清<!DOCTYPE html>
对所有新老浏览器都没问题,我们会遇到什么样的问题?
不包括<!DOCTYPE html>
会有什么问题?
我已经阅读了Stack Overflow问题 What's up, DOCTYPE? ,但它没有发现问题。我想知道一些问题,有时答案提供者说你应该为另一类问题定义<!DOCTYPE html>
,然后解决问题,就像我想知道各种问题一样。< / p>
答案 0 :(得分:6)
最佳答案来自MDN:
在网络的旧时代,网页通常写成两页 版本:一个用于Netscape Navigator,另一个用于Microsoft Internet 资源管理器。当Web标准在W3C制作时,浏览器就不能 刚开始使用它们,因为这样做会破坏大多数现有网站 网络。因此,浏览器引入了两种处理新模式的方式 符合标准的站点与旧的旧站点不同。
Web浏览器中的布局引擎现在使用了三种模式: 怪癖模式,几乎标准模式和完整标准模式。怪癖 模式,布局模拟Navigator 4和Internet中的非标准行为 适用于Windows的Explorer 5,不需要破坏现有内容 在网上。在完全标准模式下,行为(希望)是 HTML和CSS规范描述的行为。几乎 标准模式,只有极少数的怪癖 实现。
浏览器如何确定使用哪种模式?
对于HTML文档,浏览器在开头使用DOCTYPE 文件,以决定是否以怪癖模式或标准处理它 模式。要确保您的页面使用完整标准模式,请确保 您的页面在此示例中具有DOCTYPE:
<!DOCTYPE html>
<html>
<head>
<meta charset=UTF-8>
<title>Hello World!</title>
</head>
<body>
</body>
</html>
示例中显示的DOCTYPE是最简单的 可能,以及HTML5推荐的那个。早期版本的 HTML标准推荐其他变体,但所有现有浏览器 今天将使用这个DOCTYPE的完整标准模式,即使是过时的 Internet Explorer 6.没有合理的理由使用更多 复杂的DOCTYPE。如果您使用其他DOCTYPE,则可能存在风险 选择一个,几乎触发标准模式或怪癖模式。
确保将DOCTYPE放在HTML的开头 文献。 DOCTYPE之前的任何内容,如注释或XML 声明将触发Internet Explorer 9及更早版本中的怪癖模式。
在HTML5中,DOCTYPE的唯一目的是激活完整 标准模式。较旧版本的HTML标准提供了额外的功能 对DOCTYPE有意义,但没有浏览器使用过DOCTYPE 除了在怪癖模式和标准模式之间切换之外的任何事情。
要回答第二个问题,建议您使用HTML5 doctype:
<!DOCTYPE html>
在每个浏览器(包括IE6)中触发标准模式。