【问题标题】:IE7 bug with div that changes the height带有 div 的 IE7 错误会改变高度
【发布时间】:2013-05-01 17:20:34
【问题描述】:

我有这样的代码:

<body>
    <div id='wrapper'>
        <div id='content'>
          <!--content that changes his height-->
        </div>
        <div id='footer'>
          <!--Footer content-->
        </div>
    </div>
</body>

css 是这样的:

#wrapper{
   width : 1024px;
   position : relative;
}
#footer{
  position : absolute;
  bottom : 0;
  left : 0;
}

在 div#content 我有一些可以扩展或缩小的 div,所以当它们扩展时,它的高度会增加,容器 div#wrapper 的高度也会增加。在所有现代浏览器中,页脚位置都会正确重新计算,并且页脚放置在包装器 div 的最底部,但在 IE7 中不会发生这种情况:页脚保持在包装器增加其高度之前的相同位置。

通过谷歌搜索,我发现这种行为最可能的原因是“hasLayout 错误”,所以我将属性 zoom : 1 添加到 div#wrapper,但问题没有t 消失,所以我尝试将此属性添加到 #footer 等其他元素,但没有成功。

我一无所知...

有人知道发生了什么吗?

提前致谢。

【问题讨论】:

  • 您有两个 ID 为“wrapper”的元素。其中之一应该是“页脚”吗?
  • 你的问题是因为你的页脚有position:absolute
  • 是的比利,第二个应该是“页脚”。
  • 安德鲁,为什么位置:绝对是一个问题?最初,它没有位置:绝对,但是当我展开包装器时,页脚放置好了,但是当我再次缩小它时,页脚完全搞砸了,放置在错误的位置并改变了高度和宽度。

标签: javascript html css internet-explorer


【解决方案1】:

好的,我终于找到了解决方案。我删除了位置:绝对,并设置了页脚的高度和宽度。在这里我发现了一些更奇怪的东西(至少对我来说是这样)。包装器的宽度为 1024 像素。如果我将页脚的宽度设置为 1024 像素,它会使用超过 1024 像素来溢出包装器。如果我将宽度设置为 100%,同样的问题。我必须将宽度设置为 91.5% 才能将其调整为包装器的 1024 像素。有人知道这是什么原因吗?

感谢cmets。

【讨论】:

  • 可能是因为 IE 7 在其溢出 div 的混乱中设置了一些奇怪的填充/边距/边框。为了安全起见,只需使用重置 css (meyerweb.com/eric/tools/css/reset)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-08
  • 1970-01-01
  • 2013-04-08
  • 1970-01-01
  • 2012-05-26
  • 1970-01-01
相关资源
最近更新 更多