IE8 CSS绝对定位随机Bug

时间:2009-10-13 10:53:30

标签: jquery css internet-explorer internet-explorer-8 css-position

我在IE8中遇到了令人沮丧但看似随机的渲染错误。我在页面上有一些绝对定位的元素(相对于页面主体定位),其显示由jQuery切换。

10次中有8次元素被正确渲染,但有时不遵循定位,它们只是放在浏览器窗口的左上角(实际上绝对位于顶部0,左边0)。

如果我查看IE Developer Toolbar中的元素属性,我可以看到设置了正确的css属性 - 它们只是没有被应用。如果我调整浏览器窗口的大小,那么元素将跳转到正确的位置 - 因此它看起来像一个真正的渲染错误。

我在页面上设置了正确的DOCTYPE,因此浏览器不处于怪癖模式。

我有什么想法可以解决这个问题,还是有其他人经历过类似的事情?

4 个答案:

答案 0 :(得分:3)

如果我没记错的话,在显示之前尝试设置某个位置时会出现问题。

e.g。

  1. 隐藏对象
  2. 设定位置
  3. show object
  4. 对象将出现在左上角,直到再次设置位置或调整窗口大小强制IE重新计算位置

答案 1 :(得分:1)

您是否尝试过IE8特定属性:

-ms-background-position-x:1px;  -ms-background-position-y:29px;

他们只能在IE8中工作并解决这个问题。

答案 2 :(得分:1)

有类似的问题 - > IE8文本框不可编辑(当我的应用程序的包装器具有位置:绝对时)。单击仅在边框中工作。填充颜​​色和透明也没有工作。通过此doctype更改,问题已修复。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

来源:http://www.codingforums.com/showthread.php?p=1173375#post1173375

答案 3 :(得分:0)

我也经历过这种情况,我使用一些jquery来显示一个绝对定位的元素,只有在单击另一个元素时才可见。微软继续完全错误的基础是多么奇怪。