在IE9中使用html5怪癖模式

时间:2013-08-19 13:33:44

标签: html internet-explorer doctype quirks-mode

我创建了一个使用JavaScript动态创建的表单,并使用<script>标记添加到另一个网站中。

此其他网站使用的文档类型为<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">,它使用怪癖模式。

我已经考虑到这一点构建了我的表单,所有内容都在Chrome,Firefox和IE 10中按预期工作。但是,当我在IE 9及更早版本中测试时,表单根本不会显示。当我打开开发工具时,我可以看到IE 10使用新的怪癖模式,但IE 9及更早版本使用IE5 Quirks模式。

我想知道在使用IE 9及更早版本时是否可以使用新的怪癖模式来显示此页面。如果这是不可能的,我想强制使用标准模式,但仅限于使用IE 9或更早版本并且继续对其他所有浏览器使用怪癖。

我不能使用html5 doctype,因为他们的网站是用怪癖模式而不是标准构建的,当我使用这个doctype时,它们的设计都被破坏了。

1 个答案:

答案 0 :(得分:2)

加载页面后无法更改模式。而且你不能以编程方式改变它。强制页面进入怪异模式的唯一方法是在没有有效doctype或HTML中存在严重错误的情况下加载它。

如果你有一个doctype,但你的页面仍然以怪癖模式加载,那么这意味着你的HTML中存在严重的错误。这将给你带来更大的问题,而不仅仅是在怪癖模式。你应该肯定修复这些错误。如果确实希望处于怪癖模式,请删除doctype,但是您应该尽量不要使用非常糟糕的HTML代码,即使使用doctype也会触发怪癖模式!

您可以使用W3C validator验证您的HTML以查找这些错误。

在IE10的两种不同怪癖模式之间在运行时切换页面方面,简单的答案是你不能这样做。

很抱歉。

然而,说实话,它可能是最好的。无论如何,使用怪癖模式是一场彻底的灾难。它不只是改变布局模式;它还关闭了大多数浏览器的功能(即自1998年以来发明的所有功能)。

但现在好消息:

幸运的是,远离Quirks模式比你想象的容易得多。

可以通过在CSS的顶部添加以下内容来修复主要布局问题(不同的盒子模型):

*{box-sizing:border-box;}

这是将盒子模型设置为quirks-mode样式布局的符合标准的方法。通过这种简单的CSS样式,可以解决从怪异模式切换到标准模式导致的大多数损坏的布局问题。

还有其他的怪癖,但它们相对较小,一旦解决了主要问题,就不应该太难处理。其中很多实际上并不是怪癖模式问题,但是原版编码器可能不得不破解其中的旧IE版本中的错误。无论如何,即使您坚持使用怪癖模式,也无法保证这些版本在未来的版本中将继续保持相同的工作状态,因此无论如何您最好立即修复它们。

所以,总结一下:

  1. 修复您的网页,使其以标准模式加载。有效的doctype和有效的HTML。
  2. 使用box-sizing来缓解由切换引起的主要布局问题。
  3. 手动修复剩余的布局问题。
  4. 这比听起来的工作要少得多。诚实。