强制IE7进入标准渲染模式(不是怪癖)

时间:2011-02-09 14:32:35

标签: internet-explorer-7 rendering quirks-mode webpage-rendering

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

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

2 个答案:

答案 0 :(得分: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:quirk

<?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">

答案 1 :(得分:2)

您是否通过W3C validator运行代码?

如果您的HTML无效,则无论doctype如何,IE都可能会恢复为怪异模式。