gpt4 book ai didi

html - IE7 仅在来自生产服务器的页面上忽略 CSS 属性选择器

转载 作者:技术小花猫 更新时间:2023-10-29 12:02:14 25 4
gpt4 key购买 nike

在我的网站上,IE7 似乎忽略了某些 CSS 属性选择器。奇怪的是,它只发生在页面来自生产服务器时。如果我的个人服务器上有完全相同的代码,或者保存在我的硬盘上,它就可以正常工作。这是导致问题的示例:

<!DOCTYPE HTML>
<html><head>
<title>IE display test</title>
<style type="text/css">
[type=button] {
display: block;
}
</style>
</head>
<body>
<input type="button" value="Button 1"/>
<input type="button" value="Button 2"/>
<input type="button" value="Button 3"/>
</body></html>

由于按钮上的显示设置为“ block 状”,因此它们应该垂直排列。但只有当页面由我的生产服务器提供时,它们才会水平排列。当我使用开发人员工具栏检查样式时,我没有像往常那样看到“显示”属性。我能想到的唯一可能导致此问题的是页面的 URL 或来自服务器的响应 header 。我也许可以通过实验弄清楚,但这既不方便又费时,所以在我这样做之前,我想问:为什么会发生这种情况,可以采取什么措施?

编辑:我想出了一个 Fiddle .在那个网站上看起来不错。

编辑 2: 以下是来自生产服务器的响应 header :

HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Content-Type: text/html;charset=utf-8
Content-Language: en-US
Content-Length: 291
Date: Wed, 18 Jan 2012 21:32:48 GMT

编辑 3: 以下是来 self 的个人服务器的响应 header :

HTTP/1.1 200 OK
Date: Wed, 18 Jan 2012 21:37:30 GMT
Server: Apache
Vary: Accept-Encoding
Content-Encoding: gzip
Content-Length: 176
Keep-Alive: timeout=2, max=100
Connection: Keep-Alive
Content-Type: text/html;charset=utf-8

生产服务器没有应用 gzip 压缩,因为它只对超过一定大小的文件执行此操作。如果我添加一些东西使文件足够大,它使用 gzip,我仍然在 IE7 中看到问题,所以这似乎与 gzip 没有任何关系。

我尝试将我的个人服务器配置为像生产服务器一样发送“Content-Language” header ,但没有触发问题。

我不知道其他标题是否与此有关。我可以尝试测试它们,但这会有点棘手,所以可能需要一些时间。

编辑 4: 我在 IE8 中没有注意到这个问题,即使我打开了兼容模式。我正在 Windows XP 上对此进行测试,以防万一。

编辑 5: 我将字符集放在我个人服务器的 Content-Type header 中。它没有触发问题。

编辑 6: 以下是一些屏幕截图:从生产服务器提供: IE7 test on production server

由我的个人服务器提供: IE7 test on personal server

直接从我的硬盘加载: IE7 test directly from my hard drive

编辑 7: 我终于知道是什么原因造成的!我尝试在地址栏中输入 javascript:alert(document.compatMode)。个人和直接页面显示 CSS1Compat,但生产页面显示 BackCompat似乎浏览器仅在从生产服务器呈现页面时才处于怪异模式。到目前为止,我不知道为什么会发生这种情况或如何处理。

编辑 8: 我遗漏了一个细节:屏幕截图实际上来 self 的开发环境,它模拟生产服务器但在我自己的计算机上运行。这将使 BoltClock 的回复看起来合理,除了同样的问题出现在我们实际的生产服务器上,该服务器的 IP 地址匹配 173...*。为什么我会在该服务器上看到问题?那也是私有(private)IP地址吗?了解实际生产服务器使用 https 可能会有所帮助。

编辑 9:自赏金过期以来,问题不再出现在生产服务器上,但它仍然出现在我的开发环境 (10.1.10.34) 中。我不知道为什么。我想我会把它归咎于宇宙射线,除非我能拿出更多证据。

最佳答案

正如评论中所讨论的,根据 this answer by thirtydotthis answer by scunliffe ,这似乎很可能是 Internet Explorer 中安全功能的影响。您的生产服务器位于您的 Intranet 中,并通过私有(private)的 A 类 IPv4 地址(10.*.*.*)访问,我怀疑这基本上会导致 IE7 以怪癖模式呈现页面( and IE8 and newer to render pages in Compatibility View ).

不过,这只是一个猜测,恐怕 — 我无法在任何系统上的任何 IE 浏览器中重现您的问题,至少不能在您的个人服务器上或使用我自己的文件重现。如果您的生产服务器对公共(public)访问开放,而不仅仅是技术上的开放,也许您可​​以提供指向它的链接,以便我们可以进一步调试,因为问题显然局限于仅您的生产服务器

关于html - IE7 仅在来自生产服务器的页面上忽略 CSS 属性选择器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8915855/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com