Skip to main content

在Quirks模式下使用DOCTYPE元素

Anonim

如果您已经设计了几个月以上的网页,那么您很可能会发现编写在所有浏览器中看起来相同的页面的难度。事实上,这是不可能的。许多浏览器都是用只有它们才能处理的特殊功能编写的。或者他们有特殊的处理方式,与其他浏览器处理它们的方式不同。例如:

  • 创建图层以在Netscape浏览器中使用。它们不能在任何其他浏览器中使用,实际上已在Netscape 6.x +中弃用。
  • 内联框架最初仅为Internet Explorer创建,从此成为HTML规范的一部分。
  • Internet Explorer 6.0添加了一个额外的空间(如)周围的标签,除非你在一条(长)线上写入div的内容。 (IE 6还有很多怪癖和这个怪癖。)
  • Netscpe 4.7不会显示未使用正确的HTML编写的表格 - 它会显示空白页面。这是在Netscape 6中修复的。

浏览器开发人员面临的问题是,他们必须创建向后兼容为旧版浏览器构建的网页的Web浏览器。为了解决这个问题,浏览器制造商为浏览器创建了模式。这些模式是由DOCTYPE元素的存在与否以及 DOCTYPE 调用。

DOCTYPE

我在文章中详细介绍了一下 DOCTYPE列表,但这里有一些一般的经验法则:

  1. 始终首先选择标准模式。您应该使用的当前标准是HTML5:除非您有特殊原因要避免使用HTML5 DOCTYPE,这是你应该使用的。
  2. 如果您需要验证遗留元素或者出于某种原因想要避免使用新功能,请转到严格的HTML 4.01:
  3. 如果您在表中切片并且不想修复它们,请转到Transitional HTML 4.01:
  4. 不要在怪癖模式下故意写页面。总是用一个 DOCTYPE。这将为您节省未来的开发时间,并且实际上没有任何好处。 IE6正在迅速失去知名度,并且通过设计这个浏览器(这实质上是以怪癖模式设计的),你限制了自己,读者和你的页面。如果你必须为IE 6或7编写,那么使用条件注释来支持它们,而不是强迫现代浏览器进入怪癖模式。

为何使用 DOCTYPE

一旦你意识到这种类型 DOCTYPE 正在进行切换,您可以使用a更直接地影响您的网页 DOCTYPE 表示浏览器可以从您的页面中获得什么。此外,一旦你开始使用 DOCTYPE,你将编写更接近有效的HTML(你仍然应该验证它)。通过编写有效的XHTML,您可以鼓励浏览器制造商构建符合标准的浏览器。

浏览器版本和怪癖模式

DOCTYPEAndroid的火狐IE 8+iOS版Opera 7.5+苹果浏览器IE 6IE 7歌剧7Netscape 6
没有怪癖模式怪癖模式怪癖模式
HTML 3.2
怪癖模式怪癖模式怪癖模式
HTML 4.01
过渡标准模式*标准模式*标准模式
过渡怪癖模式怪癖模式怪癖模式
严格标准模式标准模式*标准模式
严格标准模式标准模式*标准模式
HTML5
标准模式标准模式*怪癖模式
*使用此DOCTYPE,浏览器接近符合标准,但有一些问题 - 一定要测试。这也被称为“几乎标准模式”。