如何解决IE6/7绝对定位元素神秘消失或被遮挡的方法

  发布时间:2011-07-22 13:53:04   作者:佚名   我要评论
在进行网页布局设计的时候,经常会根据需要设置相对定位,绝对以及浮动定位最近突然发现了一个奇妙的现象:IE6下绝对定位元素神秘消失或被遮挡, 首先是IE绝对定位元素神秘消失,设置的绝对定位元素,突然从IE浏览器下消失了,然而火狐能正常显示. 尝试对绝对定位元素进行
1.当绝对定位层的邻近浮动层的宽度不等于父层宽度时,以及没有清除浮动时,IE6/7,FF中显示一致;
2.当绝对定位层的邻近浮动层的宽度不等于父层宽度时,有清除浮动时,IE6/7不显示绝对定位层,FF显示;
3.当绝对定位层的邻近浮动层的宽度等于父层宽度时,以及没有清除浮动时,IE6不显示绝对定位层,IE7/FF显示;
4.当绝对定位层的邻近浮动层的宽度等于父层宽度时,有清除浮动时,IE6/7不显示绝对定位层,FF显示;

要解决这个BUG的方法也很简单,让绝对定位层不挨着浮动层放置就好了,还有个更简单的方法,在绝对定位元素和其他元素之间加一个空白的div。
再来看看绝对定位元素神秘消失被遮挡的现象,先了解一下所涉及到的几个定位特性:
  1. 相对定位元素默认的z-index的数值是0。
  2. 当两个相对定位同时出现时,代码靠后的z-index优先。
  3. 子级遵循父级设定的z-index;如果子级设定了绝对定位、z-index,可以冲破父级显示
看下面的代码:

复制代码
代码如下:

<div style=”position:relative; background:#FF0000; width:200px; height:100px;”>
<div style=”position:absolute; background:#FFFF00; width:49px; height:50px; left:106px; top:310px; z-index:100“></div>
</div>
<div style=”position:relative; background:#000000; width:200px; height:100px;”></div>
<div style=”position:relative; background:#9900FF; width:200px; height:100px;”></div>

  代码解释:上面是三个相邻的相对定位的层,在第一个层里加了个相对其绝对定位的层,按照理论,这个绝对定位的元素是在三个相对定位元素之上的,但是,实际却没有显示。尝试设置z-index值也没有效。
  网上解决这个bug的办法一般用hack使B为负值,来降低 B 在IE下级别。但是这种方法在z-index为负值时,产生了新的ie bug按照定位的特性,ie的这个bug是可以回避。
  从表面上看下面的层 遮住了上面的绝对定位层,实际上是下面的 层遮住了绝对定位的的父级层,只要将 该父级层的z-index设定大于后面的层即可。

相关文章

  • IE6下div层被select控件遮住的问题解决方法

    IE6下层被select控件遮住的问题想必大家在布局过程中都有遇到过吧,其实解决方法很简单就是在层里套个iframe,具体实现如下,感兴趣的朋友可以参考下,希望对大家有所帮助
    2013-08-19
  • IE中div被视频遮住(用embed来内嵌视频)的解决方法

    使用embed来内嵌视频,因为视频是windows media player,上面想用div浮动一些内容,最后设定了windowlessVideo=1终于解决,感兴趣的朋友可以参考下,希望对大家有所帮助
    2013-08-07
  • IE7浮层遮挡问题探讨及解决

    浮层遮挡情况想必大家在测试网页布局师会有遇到过吧,如果浮层中的元素覆盖的区域含有设置了postion:relative的元素,在IE7中浮层就有可能无法遮挡这些元素,下面是具体的
    2013-05-07
  • DIV遮罩层如何实现

    今天有任务让加个蒙版,JS小白的我在网上找了个修改下,改成了JS模版以后可以重复用啦,本文将详细介绍DIV遮罩层如何实现,需要的 朋友可以参考下
    2012-11-20
  • 巧用CSS3 border实现图片遮罩效果代码

    巧用CSS3 border实现图片遮罩效果代码,需要的朋友可以参考下
    2012-04-09
  • div背景半透明,覆盖整个可视区域的遮罩层效果

    背景半透明,覆盖整个可视区域的遮罩层效果在工作中经常会遇到,这篇文章主要介绍了当内容超过一屏时如何做到多浏览器的兼容性。 下面我们通过一个简单的例子看看如何实现
    2011-12-08
  • div背景半透明 覆盖整个可视区域的遮罩层效果

    背景半透明,覆盖整个可视区域的遮罩层效果在工作中经常会遇到,这篇文章主要介绍了当内容超过一屏时如何做到多浏览器的兼容性。 下面我们通过一个简单的例子看看如何实现
    2011-10-30
  • ie6 select无法被div遮盖的bug解决方法

    使用div制作蒙版或模拟弹出窗口,但在IE6下,当div下方有下拉列表框select元素的时候,下拉列表框会划破div显示在div之上,不论z-index设为何值均会出现此问题,可能由于下
    2011-07-29
  • 利用js+css简单实现半透明遮罩弹窗

    用到遮罩弹窗时在网上搜索,看到绝大多数都是基于Jquery的。我不想用那么复杂的应用,于是自己写了一个。
    2011-07-27
  • css 遮罩样式(支持IE和FireFox)

    css 遮罩样式(支持IE和FireFox) ,需要的朋友可以参考下。
    2011-01-27

最新评论