在这种特殊情况下,我无法选择DOCTYPE。我不能用一个。这是一个奇怪的情况,但事实就是如此。
我们有一些使用子选择器的CSS(“p> a> span”等)。这些工作在IE7,,即使我们没有DOCTYPE ......然后他们突然停止工作。我们做的事情导致IE7进入怪癖模式,我不知道那是什么。
我这样做了:
alert(document.compatMode);
它以“BackCompat”返回,所以我知道我们处于怪癖模式,这是有道理的,因为我们没有DOCTYPE。但是我们一直没有DOCTYPE,这个 正在工作,这告诉我还有其他方法可以让IE7摆脱怪癖模式。
答案 0 :(得分:1)
通过将Web服务器中的DOCTYPE
标头设置为X-UA-Compatible
并将其作为HTTP标头的一部分发送,可以在不使用IE=EmulateIE7
的情况下强制执行IE7兼容模式。有关如何在IIS中执行此操作,请参阅Configuring Web Servers to Specify Default Compatibility Modes,对于Apache,请参阅Apache httpd configuration for IE7 standard mode rendering in IE8。
答案 1 :(得分:0)
目前有两种方法可以在HTML文件中声明ISO值。其中之一是在doctype声明之前直接将XML prolog放在每个HTML文件的最顶行。以这种方式声明意味着每个HTML文件的前三行可能如下所示:
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
(第一行是XML序言;第二行和第三行是doctype声明。)
由于第1行没有doctype声明,Internet Explorer 6将恢复为怪异模式(尽管上述HTML代码完全有效)。但是,Internet Explorer 7不会还原为怪癖模式,而是以标准模式呈现网页。 (如果您之前没有听说过这些术语,您可能希望阅读更多有关怪癖和严格模式的内容。)
来自:http://www.webcredible.co.uk/user-friendly-resources/css/internet-explorer-7.shtml