8

我在 IE7 中遇到显示问题,因为它以怪癖模式呈现。我已经通过显示“document.compatMode”并返回“BackCompat”而不是“CSS1Compat”来确认这一点。使用 IE8 并恢复到 IE7 是可行的,因为这样可以避免出现怪癖。在普通的 IE8 中,我通过使用 X-UA-Compatible 标头强制呈现模式来修复它,但这不适用于 IE7。其他浏览器也显示怪癖,但与 IE 不同,这不会将它们置于伪 IE5.5 模式,因此它们仍然可以正常呈现。

如何强制 IE7 以标准渲染模式渲染而不是怪癖?我尝试将 DOCTYPE 设置为许多不同的选项,但我没有添加 xml 序言。提前感谢您的任何回复。

4

2 回答 2

3

您尝试过 XHTML 4 严格的 DTD 吗?

<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml/DTD/xhtml1-strict.dtd">

另请注意,如果在该 DTD 声明之前有任何内容,IE7 仍将保持怪异模式。

换句话说:

IE7:严格

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

或者

<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

IE7:怪癖

<?xml version="1.0" encoding="UTF-8"?>
<!-- stuff -->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

令人讨厌的是:IE6 将以下内容作为 Quirk 模式。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
于 2011-02-09T14:44:46.237 回答
2

您是否通过W3C 验证器运行您的代码?

如果您的 HTML 无效,则 IE 可能会恢复为怪癖模式,而不管文档类型如何。

于 2011-02-09T16:19:47.487 回答