2011-05-01 64 views
4

这个代码(它是来自实际页面的工作片段)按照预期在Firefox & Firefox上运行,并且在IE7 & 8上的一个虚拟主机上运行,​​但是当它移动到另一个如果“固定”改为“绝对”那么它工作正常,但不是要求相同的HTML在不同的主机上给出不同的布局

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html> 
<head> 
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
    <title>Test Page</title> 
    <style type="text/css"> 
     .alrtfrnt { background-color:gray;} 
     .alrtfrnt { position:fixed;top:33%;left:33%;height:150px;width:300px;z-index:9;} 
    </style> 
</head> 
<body> 
    <div class='alrtfrnt'></div> 
</body> 
</html> 

:举办“固定”的位置在IE忽略。

它不可能是一个缓存问题,因为这开始与'真正'的网页,并继续通过一些全新的网页。我还更改了块上的颜色以确保正在拾取并设置IE以检查每个页面访问的更新。

我不知道为什么完全相同的代码应以不同的方式显示,这取决于服务器,所以任何线索我可以检查或更改的下一件事将不胜感激。

+1

对于不同的服务器环境(您的主机),在HTML/CSS /脚本文本输出方面完全相同的页面显示不同,这是无意义的。请提供一些链接来演示。 – 2011-05-01 19:43:42

+2

一个解释可能是缓存,因为这是基于域名。确保在重新加载页面之前清除缓存。 – Thilo 2011-05-01 19:45:33

+3

为什么我会问这个问题,或者如果没有发生这种情况,我已经将代码降低到绝对最小值了?这可能是'无意义的',但是我在不同的主机上有两个相同的页面,他们以不同的方式显示。我无法提供链接,因为测试页面位于本地VM上。 – blankabout 2011-05-01 19:48:03

回答

2

这有可能是一个服务器模块与你的输出搞乱并混淆IE。例如,mod_pagespeed可以用于优化目的,尽管我还没有听说过IE的问题。我将在IE正在读取的源代码上运行diff(不是保存的文件本身)。

如果他们证明是相同的,我会怀疑怪癖模式的问题(其他答案的处理方式比我更彻底)。

0

你可以尝试把重要的位置放在结束符之前的固定位置旁边吗?

.alrtfrnt { position:fixed !important;top:33%;left:33%;height:150px;width:300px;z-index:9;} 
2

一个主机可能触发兼容模式或quirks模式。我会检查一些要点:

  • 确保标记完全相同 - 即使页面顶部的注释可能会改变呈现。
  • 两台主机的定义都是相似的 - 例如,它们都位于受信任的Intranet位置。
  • 这是一个愚蠢的问题 - 但是这是否会在所有机器上发生?兼容模式可以手动触发,并由浏览器保存(每域iirc,因此它可能已被该主机上的内部页面触发,而不是在另一主机上触发)。
  • 在互联网上,一个主机可能位于Compatibility View List。你可能很幸运。
  • IIS -
+0

这真的是一个真正的评论,因为它大部分都是猜测,但是增长很多...... – Kobi 2011-05-01 20:12:58

+0

你肯定有正确的想法,''这是可能的,一个主机触发兼容模式或怪癖模式。 – thirtydot 2011-05-01 20:15:27

4

让我们把你的两台主机A和B:

主机A - 一切正常。

主机B - 它拧了,position: fixed不起作用。

问题几乎可以肯定的是IE在Quirks Mode中显示主机B.

您可以通过按F12并查看文档模式进行验证。

  • 如果它说“IE8标准”,那么事情的工作。
  • 如果它说“怪癖模式”,那么事情(如position: fixed)将无法正常工作。

这里有一个指导确定究竟为什么Internet Explorer被恢复到Quirks模式:

如果这似乎有点太复杂了,你可以(在几乎所有案例)通过添加此元标记强制正确的文档模式:

<meta http-equiv="X-UA-Compatible" content="IE=Edge" /> 

如果有帮助,我写的是同一件事的一些其他答案:

+0

这与quirks模式有关,由一个虚拟主机正在使用的模块触发,而不是另一个。感谢您的全面回答和链接。 – blankabout 2011-05-01 20:48:03

+0

出于好奇,它是哪个模块? – thirtydot 2011-05-01 20:49:59

相关问题