如果我在代码中不加入<!DOCTYPE html>会发生什么?这会造成重大改变吗?

29

我正在进行几个与HTML相关的项目,有时候会忘记添加<!DOCTYPE html>。这会造成什么大的或明显的变化吗?


2
可以,是的。你可能会进入浏览器兼容模式。这会根据页面上的内容而产生影响。 - Brad
3
如果现代的 HTML 页面没有 [HTML5] DOCTYPE 声明,你的页面将会进入可怕的“quirks mode”,这是一个破碎而定义不清的状态。请参见Quirks mode and strict mode。为了避免这种情况,请确保始终在您的页面中包含正确的 DOCTYPE 声明。 - user2864740
4个回答

34

<!DOCTYPE>声明必须是HTML文档中的第一件事,在 <html>标签之前。

<!DOCTYPE>声明不是HTML标签,它是告诉浏览器页面所写的HTML版本的指令。

许多IDE允许用户将其省略并默认使用某个HTML样式(甚至可以自动插入它),但是省略它可能会导致浏览器兼容性问题和使用较旧版本的HTML。

例如:如果未声明<!DOCTYPE>,则可能不支持HTML5中的新功能和标签,如<article><footer><header><nav><section>

此外,浏览器可能会决定自动进入 Quirks或Strict模式。


1
这篇文章可能会有所帮助,它可以补充你回答的最后一部分:):http://jkorpela.fi/quirks-mode.html - ivanleoncz
1
@ivanleoncz -- 已添加到我的回答中!感谢您的参考 :) - steviesh
所有这些答案现在似乎都已经过时了。把IE(所有版本,因为你知道,谁在乎呢)放在一边,最新版本的Chrome是否真的很重要?如果不是,它应该被视为事实上的冗余。 - Sujay Phadke
Chrome怎么样? - Alex78191
2
答案不包含关于主题的回复:如果缺少DOCTYPE会发生什么? - Victor Ponamarev

12
在HTML文档中,浏览器会在文档的开头使用DOCTYPE来决定是以怪癖模式还是标准模式处理。
<!DOCTYPE html> // Tells the browser that we are using HTML5.

如果未指定文档类型,则浏览器将进入怪异模式。怪异模式取决于Web浏览器版本,如果是旧版本,则不支持HTML5标签(例如:header标签、footer标签、section标签等)。

要查看怪异模式和标准模式之间的区别,请访问:https://developer.mozilla.org/en-US/docs/Web/HTML/Quirks_Mode_and_Standards_Mode

如果您想尝试该代码,请使用以下代码,并分别加上和不加上“/”:

<!DOCTYPE html> 

如果您使用旧版本的浏览器,例如IE 8或更早版本

   `<video controls>
       <source src="../videos/big_buck_bunny.mp4" type="video/mp4">
       <p>Your browser does not support H.264/MP4.</p>
    </video>`       

//注意:在上面的代码中,src="在你的电脑中提供你本地mp4视频的链接"


1
如果未指定文档类型,浏览器将进入怪异模式。您能否提供一个参考资料,证明这一点是有保障的,并且即使内容完全有效的 XHTML,html 标签甚至包括 xmlns="http://www.w3.org/1999/xhtml",Quirks 模式始终比标准模式差得多? - Dmytro
2
你好@Dmitry,感谢您在此讨论中提出的问题。希望这可以帮到您:https://www.w3.org/wiki/Doctypes_and_markup_styles#Standards_versus_quirks_mode - Muthukumar

7

因为历史原因,DOCTYPE是必需的。

如果省略了DOCTYPE,浏览器往往会使用不兼容某些规范的不同呈现模式。

在文档中包含DOCTYPE可以确保浏览器尽最大努力遵循相关规范。

更多详情请查看:http://www.w3.org/TR/html5/syntax.html


0
在某些情况下,DOCTYPE 不是 HTML 文档中的第一行,例如:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
...

你的回答可以通过提供更多支持信息来改进。请编辑以添加进一步的细节,例如引用或文档,以便他人可以确认你的答案是正确的。您可以在帮助中心中找到有关如何编写良好答案的更多信息。 - Community

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