`

Z-index在IE中失效的解决办法

    博客分类:
  • css
 
阅读更多

Z-index在IE中失效的解决办法

作者:Jacoob 

IE6、7都存在着z-index失效的bug,万恶的IE,对于每一个美工来说,IE都不怎么招人待见。但是又无法不照顾到它,毕竟它还占有强大的市场份额。我们不能期望它做出什么改变,我们就要学会找到方法去迎合它。

Z-index是让元素漂浮起来的一个属性,在IE6、7中无论你把Z-INDEX的级别设置的有多高,它就是不漂浮起来。在CSS中,要让z-index起作用有个小小前提,就是元素的position属性要是relative,absolute或是fixed。

1.第一种情况(z-index无论设置多高都不起作用情况):这种情况发生的条件有三个:
    1、父标签 position属性为relative;
    2、问题标签无position属性(不包括static);
    3、问题标签含有浮动(float)属性。
   
eg:z-index层级不起作用,浮动会让z-index失效
<div style="position:relative; z-index:9999;">
    <img style="float:left;" src="http://www.jacoobs.com/image/logo.jpg" />
</div>   

解决办法有三个(任一即可):
    1、position:relative改为position:absolute;
    2、浮动元素添加position属性(如relative,absolute等);
    3、去除浮动。
   

2.第二种情况
IE6下,层级的表现有时候不是看子标签的z-index多高,而要看整个DOM tree(节点树)的第一个relative属性的父标签的层级。

eg:IE7与IE6有着同样的bug,原因很简单,虽然图片所在div当前的老爸层级很高(1000),但是由于老爸的老爸不顶用,可怜了9999如此强势的孩子没有出头之日啊!
<div style="position:relative;">
    <div style="position:relative; z-index:1000;">
        <div style="position:absolute; z-index:9999;">
            <img src="http://www.jacoobs.com/image/logo.jpg" />
        </div>
    </div>
</div>

解决办法: 在第一个relative属性加上一个更高的层级(z-index:1)
<div style="position:relative; z-index:1;">
    <div style="position:relative; z-index:1000;">
        <div style="position:absolute; z-index:9999;">
             <img src="http://www.jacoobs.com/image/logo.jpg" />
        </div>
    </div>
</div>

z-index这玩意深不可测,里面所蕴含的知识不是 CSS手册上的那点东西,那只是冰山一角。这涉及到border及background的堆叠模型,涉及到同层级的显示问题,以及浏览器显示的些机制等, 这是很深的一潭水。

总之,慢慢来,慢慢积累,慢慢研究,一定会一步一步揭开z-index的本质面纱的。

分享到:
评论

相关推荐

    ie6 z-index不起作用的完美解决方法

    然而,在IE6浏览器中,即使设置了很高的z-index值,有时元素仍然无法正确显示在预期的层叠级别之上。 首先,我们必须了解z-index属性的工作原理。z-index只有在元素的position属性被设置为relative、absolute或...

    css设置z-index 失效的解决方法

    在CSS布局中,`z-index`属性用于控制元素在Z轴上的堆叠顺序,从而决定哪个元素会覆盖另一个。然而,有时我们可能会遇到设置`z-index`后却无法生效的问题。这个问题通常与元素的位置属性(position)有关。在标题和...

    chrome中position:fixed对z-index的影响

    dom结构:正常的实现方式很容易:因为B本身就在A的后面,当A和B都设置了position属性(非static),且没有设置z-index的时候,其层叠关系是后面的元素覆盖前面的元素,这样只需要给A-child设置z-index属性值即可。...

    div层调整z-index属性无效原因分析及解决方法

    对于这一问题,解决办法是在DOM树结构中第一个relative属性的父标签上添加一个更高的z-index值,例如设置为1。这样做有助于确保IE6和IE7能够按照z-index的预期来显示元素的堆叠顺序。 以上就是有关div层调整z-index...

    ie7下z-index失效问题解决方法(详细分析)

    解决办法: 父级元素加上position:relative;并设置z-index. 父级元素的z-index优先,其中包含的元素的z-index是相对于父级元素的index. &lt;div xss=removed&gt; &lt;p xss=removed&gt; …(要在上层显示的内容)&lt;/p&gt; &lt;div&gt; ...

    CSS3关于z-index不生效问题的解决

    2.在有定位的情况下,该元素的z-index没有生效,是因为该元素的子元素后来居上,盖住了该元素,解决方式:将盖住该元素的子元素的z-index设置为负数 下拉框例子: 1.盖住的时候: 2.将下拉框的z-index设置为负数 ...

    IE7 设置z-index的覆盖问题的解决方法

    在这些版本的IE浏览器中,当父元素设置了position:relative,其子元素所设置的z-index属性有时会失效,导致层叠顺序与预期不符。 z-index属性是CSS中的一个属性,它控制着定位元素的堆叠顺序。正常情况下,具有更高...

    css3的transform造成z-index无效解决方案

    百度到这里《小心 CSS3 Transform 引起的 z-index 失效》 “CSS3 Transform create new stacking context” 这个道理想想也明白,Transform 就是一个影子,假像,所以它不考虑z-index.那怎么解决呢? 再百度,以及去...

    css z-index 最大值

    最后,针对跨浏览器兼容性的z-index值,我们可以认为在IE、Safari和Opera中,z-index的最小值是-***,而在Firefox中,我们应避免使用负值,因为任何小于-***的值都会导致元素不显示。因此,对于Firefox浏览器,我们...

    ie6下select覆盖div的解决办法

    这种方法在大多数现代浏览器中有效,但IE6可能会忽略z-index,除非元素也被定位(`position: absolute`或`relative`)。如果Select仍然在Div之上,可以尝试将Select也设置为`position: relative;`,并赋予一个比Div...

    div被iframe遮住的几种情况及解决方法

    在IE8中,当IFRAME内部嵌入video元素进行视频播放时,可能会导致外部元素的z-index层级设置失效,即不论外部元素的z-index值是多少,都会被IFRAME覆盖。解决这个问题的一个方法是在IFRAME的URL参数中添加wmode=...

    DIV在IE6中被下拉菜单占据的问题

    2. **设置更高的z-index**:尽管在IE6中可能不起作用,但还是值得尝试为受影响的`&lt;div&gt;`元素设置一个高于下拉菜单的`z-index`值。 3. **使用hasLayout属性**:IE6中有一些元素拥有一个称为“hasLayout”的内部属性...

    border-radius失效

    尝试移除或调整这些属性,或者使用`z-index`和`relative`定位来解决问题。 5. **内嵌框架(IFRAME)**:如果元素是内嵌框架,`border-radius`可能不会应用于整个框架,因为浏览器的安全策略限制。在这种情况下,需要...

    解决kindeditor 编辑器完美支持IE11 看不见上传文件框问题 无法保存问题

    为了更好地调试和解决问题,可以开启IE11的开发者工具,利用其内置的模拟器查看不同IE版本的行为,或者使用F12开发者工具中的"兼容性视图"功能,这有助于发现样式和脚本在不同模式下的表现差异。同时,阅读...

    IE6下Select元素被div等元素覆盖的解决办法

    在IE6浏览器中,一个常见的布局问题是下拉选择框(select元素)在使用div元素制作蒙版或弹出层时会被覆盖,即使给div设置了更高的z-index也无法解决。此问题的根本原因在于IE6对z-index属性的解释与其它浏览器不同,...

    ie的常见兼容问题

    然而,在IE6和IE7中,这种方法可能会失效。解决方法是在`.clearfix`类中加入额外的样式: ```css .clearfix { zoom: 1; /* For IE6/7 */ } ``` 通过这种方式,可以有效地解决IE中的浮动清除问题。 综上所述,IE...

    IE6下png透明问题解决的最佳方案.rar

    然而,在IE6中,由于其内核对PNG8(8位色,不包含阿尔法通道)的支持优于PNG24(24位色,支持阿尔法通道),导致PNG24类型的图片透明度失效,只显示为纯色背景。 解决IE6下的PNG透明问题有多种方法,以下是几种常见...

Global site tag (gtag.js) - Google Analytics