为什么有必要使用doctype?

lux*_*uxi 1 html css

如果我们不包含doctype并且澄清<!DOCTYPE html>对所有新旧浏览器都没问题,我们将面临哪些问题?

有哪些问题不包括在内<!DOCTYPE html>

我已经读过Stack Overflow问题什么了,DOCTYPE?,但它没有发现问题.我想知道一些问题,有时答案提供者说你应该定义<!DOCTYPE html>另一类问题,然后解决问题,就像我想知道各种问题一样.

j08*_*691 6

最好的答案来自MDN:

在Web的旧时代,页面通常用两个版本编写:一个用于Netscape Navigator,一个用于Microsoft Internet Explorer.当Web标准在W3C制作时,浏览器不能只是开始使用它们,因为这样做会破坏网络上的大多数现有网站.因此,浏览器引入了两种模式来处理符合新标准的站点,这与旧的旧站点不同.

Web浏览器中的布局引擎现在使用三种模式: 怪癖模式,几乎标准模式完全标准模式.在怪癖模式下,布局模拟导航器4和Internet Explorer 5 for Windows中的非标准行为,这些行为不会破坏Web上的现有内容.在完全标准模式下,行为(希望)是HTML和CSS规范描述的行为.在几乎标准模式下,只实现了极少数的怪癖.

浏览器如何确定使用哪种模式?

对于HTML文档,浏览器在文档开头使用DOCTYPE来决定是以怪异模式还是标准模式处理它.要确保您的网页使用完整标准模式,请确保您的网页在此示例中具有DOCTYPE:

<!DOCTYPE html>
<html>
<head>
<meta charset=UTF-8>
<title>Hello World!</title>   
</head>
<body>
</body> 
</html>
Run Code Online (Sandbox Code Playgroud)

示例中显示的DOCTYPE是最简单的,也是HTML5推荐的DOCTYPE.早期版本的HTML标准推荐了其他版本,但今天所有现有浏览器都将使用此DOCTYPE的完整标准模式,即使是过时的Internet Explorer 6.没有合理的理由使用更复杂的DOCTYPE.如果你使用另一个DOCTYPE,你可能会冒险选择一个,这会触发几乎标准模式或怪癖模式.

确保将DOCTYPE放在HTML文档的开头.DOCTYPE之前的任何内容,如注释或XML声明都将触发Internet Explorer 9及更早版本中的怪癖模式.

在HTML5中,DOCTYPE的唯一目的是激活完整标准模式.较早版本的HTML标准为DOCTYPE提供了额外的含义,但是除了在怪异模式和标准模式之间切换之外,没有任何浏览器曾使用过DOCTYPE.

要回答第二个问题,建议您使用HTML5 doctype: <!DOCTYPE html>在每个浏览器(包括IE6)中触发标准模式.

  • 由于未定义文档类型而可能出现的问题取决于您的标记。在一个简单的文档中,可能根本没有问题。在其他情况下,您可能会遇到布局损坏、浮动问题、对齐问题、内容根本不显示、定义的字体不显示、图像不合适、没有响应媒体查询功能等等。 (2认同)