怪癖模式合法吗?

时间:2011-02-02 08:01:42

标签: html css internet-explorer quirks-mode

我正在度假而无法访问我的好朋友Internet Explorer,我把一个非常完整的网络应用程序整合在一起。当我回到家时,我很惊讶并鼓励我看到我的网站在IE中工作......直到我投入任何有效的doctype。我知道将浏览器置于怪癖模式不是最好的做法,或者它不会被称为怪癖模式,但我想我的问题是......有一个实际的后果是什么?怪癖模式'现场?是否有必要或甚至值得努力奴役以纠正我尚未意识到的问题,或者我可以将其保留原样,运行跨浏览器?感谢。

4 个答案:

答案 0 :(得分:7)

如果您的网站在标准模式下呈现错误,但在怪异模式下更正,则可能是错误的。一些当前的浏览器甚至可以在标准模式下修复您的错误,但您不知道未来的浏览器将使用它做什么。使用标准模式,您可以绝对确保在现代浏览器中看起来很好的有效网站能够正确显示。

答案 1 :(得分:2)

W3的HTML验证在技术上需要声明正确的doctype;但是,很多人都将其代码保留为非文档状态,以便浏览器使用Quirks模式。我已经做过很多次了,通常效果很好;但是,您冒着浏览器无法正确解释代码的风险。

换句话说,您所说的跨浏览器功能可以很容易地分解为跨浏览器的地狱而没有有效的doctype声明。

A.k.a。,这取决于您的网站需要多么强大。

答案 2 :(得分:2)

与怪癖模式相比,浏览器在非怪癖模式下更具互操作性,即具有相同的行为。无怪癖模式是大多数Web标准人员和浏览器开发人员关心,考虑和测试的模式。因此,你更有可能在怪癖模式下遇到浏览器之间的差异。

例如,在怪癖模式下,body在WebKit / Blink中填充视口,但在Gecko中不填充(我不确定Edge)。在非怪癖模式下,body高度在所有浏览器中的工作方式相同。

(但有一个反例,浏览器在怪异模式下同意但在非怪癖模式下不同:body是"视口滚动元素" for {{ 1}}等等。)

某些版本的IE(8和9?)故意在其怪癖模式中具有较少的功能(例如scrollTop元素)。因此,如果您关心IE并希望能够使用IE实际支持的功能,而不是在怪癖模式下,那么这将是不使用怪癖模式的另一个原因。

最后,也许很明显,你可能会遇到更多"奇怪的"行为本身就是怪癖,比如canvas和其他一些不继承color元素的东西,顶部和底部边距会崩溃,ID和类不区分大小写,等等。

答案 3 :(得分:1)

Quirks模式通常是浏览器尝试修复错误以便正确呈现,但重要的是要记住,如果您的网站呈现符合标准的模式,它可能会在未来的浏览器中呈现(至少在目前)