IE 6 z-index和position:fixed;问题

时间:2011-11-01 06:19:49

标签: html css

这是我现在试图解决的问题!我四处寻找解决方案,但找不到解决方案。首先,我的html是如何构建的(只是骨架框架) -

<body>
  <div class="header"> </div>
  <div id="content-wrapper">
  <a href="/some.html"><div class="feedback_div"></div></a>
  </div>
  <div id="footer-wrapper"></div>
</body>

现在我的 .feedback div已定位已修复并且已被top: 40%;right: 0;和z-指数太(当然)。虽然这种方法在所有浏览器中都能正常工作,但IE 6会让它变得混乱。因此,为了在IE 6上复制其效果,我得到了这个解决方案 -

/* IE 6 only */
* .feedback_div
{
    z-index: 9998;
    position: absolute;
    top: expression( (( t=document.documentElement.scrollTop) ? t: document.body.scrollTop) +'px');
    right: -140px;
}
* #content-wrapper
{
    position: relative;
    z-index: 9999;
}
* #footer-wrapper
{
    z-index: 0;
    position: relative;
}
* html 
{
overflow: auto;
}
* html body 
{
height: 100%; /* required */
}
/* END: IE 6 only */

问题现在就是这样,而 .feedback div会在您滚动时跟随您,当它到达 .footer div时,反馈div支持它。我尝试使用z-index但没有任何效果。

现在我知道理想的解决方案是重新构造html,使 .feedback div成为<body>的孩子。但我不打算改变结构,这意味着在后端搞乱。我正在寻求解决这个问题只是为了...所以即使它按照预期的方式进行,也可以做某种黑客。

对于这个,有没有解决方案?任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:2)

代码中存在一些错误:

  • div标记内有a个标记,该标记无效。浏览器会将div元素移到a元素之外。
  • class="feedback"上有div,但您在CSS中使用.feedback_div,因此该样式不适用。

使用z-index时,它适用于同一级别的元素,因此您将它应用于反馈元素的父级,因为它与页脚位于同一级别。

答案 1 :(得分:0)

如果我没记错的话,对于IE6,您需要设置zoom: 1以使z-index正常工作。