5

这让我很困惑——我的页面上有一个具有绝对位置的元素,位于具有相对位置的容器内。在除 IE7 之外的所有浏览器中,它都出现在正确的位置,完全没有问题。

在 IE7 中,直到我在开发人员工具栏的“属性”选项卡中添加或编辑其任何 CSS 属性(即使是与其可见性或位置无关的属性,如) ,该元素才会出现color。一旦我这样做,它就会正确显示 - 如果我删除我刚刚添加的属性(或撤消修改),它甚至仍然可见!

这一定是特定于 IE7 的显示错误,但我无法找到解决方法 - 我已经抛出float,zoom等无济于事。

4

2 回答 2

3

我通过将消失的元素更深一层移动到另一个子元素中来解决这个问题。由于子元素是浮动的,但没有位置,因此消失的元素仍然相对于父元素定位,这是我想要的 - 但由于某种原因,这也导致它在 IE7 中可见,就像它应该是。

这就是我导致元素消失的原因(不是真实的 ID):

<div id="parent" style="position: relative;">
  <div id="disappear" style="position: absolute; left: -8px; top: -17px;>This element disappears</div>
</div>

这就是它出现的原因:

<div id="parent" style="position: relative;">
  <div id="child" style="float: left; width: 340px;">
    <div id="disappear" style="position: absolute; left: -8px; top: -17px;">Now this element appears</div>
  </div>
</div>

但是,浮动#parent并给它一个width(具有相同的两个属性#child)不起作用 - 我必须使用一个单独的子元素。完全奇怪,但我想我会发布这个,以防其他人遇到同样的问题!

于 2012-07-30T01:32:43.637 回答
0

IE 开发者工具栏如何触发它可见是不是很奇怪?!

我修复了它,而不是对子元素使用绝对定位,而是使用带有负边距的相对定位来定位元素。不理想,因为它使设计更加脆弱,但我当时唯一的选择。

于 2013-05-21T16:02:39.437 回答