0

我过得很糟糕。我们有一个巨大的网站,<DOCTYPE>当我用 IE10 运行它时,它进入了怪癖模式,并且在一些 CSS 更改后看起来没问题。我一添加echo "<!DOCTYPE HTML>";

完整的网站看起来很糟糕,而且 CSS 看起来并不像它想象的那样。它将浏览器模式变为 IE10,将 docmode 变为标准。有没有办法保留 HTML 5 功能但使用 IE5 Quirks 模式或仅使用 Quirks 模式以便 CSS 看起来正确?

4

3 回答 3

1

不,怪癖模式的全部意义在于它是 IE5 的兼容模式。这意味着除了改变布局模式外,它还关闭了自 IE5 以来发明的大部分浏览器功能。

因此,直截了当的回答是否定的,您不能将 Quirks 模式和 HTML5 混合使用。它只是不可能发生。

不过,有一些好消息要告诉您:从怪癖模式切换到标准模式实际上比乍一看要容易。

您不必遍历整个站点来更改所有 CSS 以适应不同的盒子模型,因为标准模式确实有一个 CSS 功能,允许您使用怪癖模式盒子模型,同时仍保持标准模式。

只需将以下内容添加到 CSS 代码的顶部:

* {box-sizing:border-box;}

这会将您的所有元素更改为使用 quirks 模式框模型,但您的页面仍将处于标准模式。

这应该可以解决您遇到的大多数(如果不是全部)布局问题。

希望有帮助。

于 2013-09-26T09:17:44.823 回答
0

不,没有。包含新功能的现代引擎和用于模拟古老、漏洞百出的浏览器的引擎是独立的实体,您不能混合和匹配它们的一部分。

于 2013-09-26T09:12:14.870 回答
0

就 IE 以外的浏览器而言,可以添加 HTML5 中引入的标签和属性,而无需使用任何<!DOCTYPE>. 该页面将不符合 HTML5,但这只是一种形式。浏览器做他们做的事,解释标签和属性,因为它们已经被编程。浏览器中没有需要使用 a<!DOCTYPE>或其他方式触发的“HTML5 模式”。去尝试一下。加入一些 HTML5 新奇事物,例如<input type=email>or <details>,如果浏览器首先支持它们,无论是否存在 a ,您都会看到它们可以工作<!DOCTYPE>

然后,您在使用标记验证器时会遇到困难,但这是一个不同的问题。

怪癖模式真是一团糟,有几十个未记录和记录不充分的现象。如果一个页面在 Quirks 模式下工作,然后你让浏览器在标准模式下渲染它,那么实际上任何事情都可能发生,从没有影响到彻底的灾难。所以这样的改变通常是毫无意义的冒险。为使用它而开发的旧页面继续使用 Quirks 模式,并创建新页面以在标准模式下工作(并且可能符合 HTML5)。

怪癖模式会影响样式,并在一定程度上影响脚本。它略微影响了一些旧 HTML 属性的解释。但在大多数浏览器中,新 HTML5 功能的工作方式并非如此。

然而,IE 特别古怪。在 IE 10 上,上述内容似乎适用。在 IE 11 Preview 上,已经报告了偏差。在 IE 9 上,Quirks 模式不支持一些原本支持的 HTML5 新奇事物,例如canvas元素。因此,如果您打算向现在在 Quirks 模式下工作的旧页面添加大量使用新 HTML5 功能,您可能需要首先考虑将页面更改为标准模式。根据 Quirks 功能的影响,这可能最好通过重写页面来完成,或者可能“只是”重新设计 CSS 的使用以符合 CSS 规范。

[答案于 2013 年 10 月 15 日更正。]

于 2013-09-26T11:18:05.937 回答