什么是怪癖模式?

Ibr*_*jab 44 html css

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

Hai*_*vgi 32

你可以在这个链接中阅读:

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

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

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

现代浏览器通常会尝试根据W3C建议呈现HTML内容.但是,为了提供与旧网页的兼容性,并提供额外的"直观"功能,所有浏览器都支持另一种"怪癖模式".

然而,怪癖模式不是标准.在不同浏览器中以怪异模式呈现任何页面可能不同.只要有可能,最好遵守W3C标准并尽量避免依赖于过去或现在的浏览器怪癖.

通常,当没有正确的DOCTYPE声明时,将打开quirks模式,并在存在DOCTYPE定义时关闭.但是,无效的HTML - 相对于所选的DOCTYPE - 也可能导致浏览器切换到怪癖模式.

有关不同浏览器中不同怪异模式的更多信息,请访问QuirksMode.org

  • 您是否可以提供任何证据证明即使使用有效的标准模式触发Doctype,无效HTML也可以触发怪癖模式?这不是我遇到的事情. (6认同)

Sam*_*152 9

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

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" 
"http://www.w3.org/TR/html4/strict.dtd">
Run Code Online (Sandbox Code Playgroud)

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

这是HTML 4.01 Strict DTD,它排除了W3C期望逐步淘汰的表示属性和元素,因为对样式表的支持日趋成熟.作者应尽可能使用Strict DTD,但在需要支持表示属性和元素时可以使用Transitional DTD.


小智 6

怪癖模式也称为兼容模式-表示您的页面在运行时没有声明文档类型(这是旧派,因此很有可能不再需要)。怪癖模式的全部要点是它是IE5的兼容模式。这意味着,除了更改布局模式之外,它还关闭了自IE5以来发明的大多数浏览器功能。在怪癖模式下,Web浏览器尝试基于“最佳猜测”来呈现/编写代码,其中包括对可能是非标准或格式不正确的代码的大量解释。如果您未声明doctype,则浏览器将不得不猜测您正在运行的HTML / CSS版本,Quirks模式使较旧的HTML文档仍可以“使用其网络浏览器使用的技术来保持与较旧网页的向后兼容性”。

如果您编写正确的doctype,将触发标准模式而不是Quirks模式,如Netscape 4的旧版浏览器将永久锁定在quirks模式下

怪癖模式使您的浏览器像旧版浏览器一样运行

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

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

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

而且您所有的html5 css都将因为不兼容而无法正常工作

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

在怪癖模式下,document.body(body-element)是根元素,在标准模式下,它是html-element(document.documentElement)。怪癖模式是针对浏览器的旧规则的,它们做到了这一点,以使在万维网出现之前和发明HTML5之前编写的旧网站不会中断。因此,怪癖模式仅用于支持那些CSS功能不正确的网站。所以现在开发人员可以选择。对于较旧的浏览器和网站,请使用标准(当今的浏览器)或怪癖模式。在怪癖模式下,我们今天拥有的许多CSS / HTML功能无法正常使用。


tom*_*tom 5

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

因此,在2009年,除非您正在处理较旧的CSS或较旧的浏览器,否则您不必担心怪异模式.只需将CSS编写为当前的Web标准,就可以了.