什么是怪癖模式?

时间:2009-11-08 08:38:26

标签: html css

在很多关于设计的文章中,提到了怪癖模式。 有人在纯文本和开发前景中对这个事情有所了解吗?

6 个答案:

答案 0 :(得分:31)

你可以阅读这个链接  :

http://en.wikipedia.org/wiki/Quirks_mode

http://www.quirksmode.org/css/quirksmode.html

http://www.cs.tut.fi/~jkorpela/quirks-mode.html

  

现代浏览器通常会尝试   根据提供HTML内容   W3C建议。但是,要   提供与旧网络的兼容性   页面,并提供额外的   所有“直观”功能   浏览器支持替代方案   “怪癖模式”。

     然而,

Quirks模式不是   标准。任何页面的渲染   不同浏览器中的怪癖模式可能   与众不同。只要有可能,它就是   更好地遵守W3C标准   并尽量避免依赖任何   过去或现在的浏览器怪癖。

     

通常,打开怪癖模式   当没有正确的DOCTYPE时   声明,并在那里关闭   是DOCTYPE定义。然而,   无效的HTML - 相对于   选择DOCTYPE - 也可以导致   浏览器切换到怪癖模式。

     

有关不同的更多信息   不同浏览器中的怪癖模式可以   可以在QuirksMode.org

找到

答案 1 :(得分:9)

Quirks模式意味着您的页面在没有声明文档类型的情况下运行,文档类型在页面的最顶部定义,它表示浏览器应该如何读取HTML。这是StackOverflows doctype:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" 
"http://www.w3.org/TR/html4/strict.dtd">

w3.org指定Web标准和文档类型,因为Stack Overflow使用此doctype,它必须遵守该doctype的specification

  

这是HTML 4.01 Strict DTD,它   排除演示属性   和W3C期望逐步实现的元素   作为样式表的支持   日趋成熟。作者应该使用Strict   尽可能使用DTD,但可以使用   支持时的过渡DTD   表示属性和元素是   必需的。

答案 2 :(得分:5)

在过去几天,当Web浏览器没有完整/正确的CSS实现时,开发人员依靠这些特性来使他们的页面正确呈现。然而,随着浏览器变得更符合标准,这些页面不再正确呈现,因为它们是基于不同类型的CSS编写的。这就是quirks模式的用武之地,因为它处理为这些破碎的CSS实现编写的页面。

所以在2009年,你不需要担心怪癖模式,除非你正在处理较旧的CSS或较旧的浏览器。只需将CSS编写为当前的Web标准,就可以了。

答案 3 :(得分:5)

Quirks模式也称为兼容模式 - 意味着您的页面在没有声明文档类型的情况下运行(这是旧学校,因此很可能不再需要)  怪癖模式的全部意义在于它是IE5的兼容模式。这意味着除了更改布局模式之外,它还会关闭自IE5以来发明的大多数浏览器功能。 在怪癖模式中,Web浏览器尝试基于“最佳猜测”来渲染/生成代码,这包括对可能是非标准或不良格式的代码的慷慨解释。 如果您没有声明doctype,浏览器将不得不猜测您正在运行的HTML / CSS版本 Quirks模式使旧的HTML文档仍然有效 它是Web浏览器用来保持与旧网页向后兼容的技术。

如果你写了一个正确的doctype,那将触发标准模式而不是Quirks模式  Netscape 4等旧版浏览器永久锁定在怪癖模式

Quirks模式使您的浏览器可以像旧浏览器一样运行

这是一种浏览器不遵守法律的模式。它在此模式下接受任何格式错误的标记,并且对语法,标记和元素不严格 基本上意味着它即使没有正确编写也会接受你的代码

在怪癖模式下,浏览器的行为与网络早期的行为一样。这样做是为了防止旧网站在新浏览器中破坏太多。

在所有浏览器中编写看起来相同的页面存在困难。事实上,这是不可能的。许多浏览器都是用只有它们才能处理的特殊功能编写的。或者他们有特殊的处理方式,与其他浏览器处理它们的方式不同 使用非标准将导致每个浏览器以怪癖模式运行。但并非所有浏览器在怪异模式下都表现相同,每个浏览器都会恢复其自己独特的渲染引擎,这就是为什么在不同的浏览器中使页面看起来很相似的原因。

你所有的html5 css也无法正常工作,因为它不兼容

Quirks模式支持IE6的JavaScript功能,类似于IE5的行为和IE6,IE7和IE8的Quirks模式行为。

在怪癖模式下,document.body(body-element)是根元素,在标准模式下,它是html-element(document.documentElement)。 怪癖模式适用于浏览器的旧规则,它们使得在万维网发布之前和HTML5发明之前编写的旧网站不会中断。所以quirks模式只是为了支持那些CSS功能不正确的网站。所以现在开发者可以选择。对于旧浏览器和网站,请使用标准(今天的浏览器)或怪癖模式。在怪癖模式下,我们今天拥有的许多CSS / HTML功能都无法正常工作。

答案 4 :(得分:2)

http://www.motive.co.nz/glossary/quirks-mode.php

  • 在怪癖模式下,Web浏览器尝试基于“最佳猜测”呈现代码,这包括对可能是非标准或不良格式的代码的慷慨解释。
  • 如果网页没有文档类型声明或文档类型声明不完整(例如,如果省略了DTD的URI),则Web浏览器可能会切换到怪异模式。
  • Quirks模式使较旧的HTML文档仍然可以“正常工作”,并且当已知使用的代码未能通过当前技术标准时(以及无意/预算修改遗留内容时),应触发。 LI>

答案 5 :(得分:-1)

几乎总是信任我测试过的答案,而不是特别是从不必要的人那里得到的投票。


除了其他答案外,还可以通过以下方式检查模式:

javascript:window.alert('You are in ' + (document.compatMode==='CSS1Compat'?'Standards':'Quirks') + ' mode.')