zoukankan      html  css  js  c++  java
  • 14.z-index为什么无效

    z-index 属性设置元素的堆叠顺序。拥有更高堆叠顺序的元素总是会处于堆叠顺序较低的元素的前面。
    注释:元素可拥有负的 z-index 属性值。
    注释:Z-index 仅能在定位元素上奏效(position属性值设置除默认值static以外的元素,包括relative,absolute,fixed样式)

                1、只有已定位的元素才能使用z-index
                2、父子元素间,z-index 无效,永远都是子压在父上

    负值的z-index也依照大小比较的原理,但一般来说负值的z-index会被透明的body覆盖导致点击等事件响应出现问题,请谨慎使用。

    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="/131101/1A5494I0-0.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="/131101/1A3194V7-1.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="/131101/1A3194V7-1.jpg"> </DIV>
    </DIV>
    </DIV> 

  • 相关阅读:
    Java实现 蓝桥杯VIP 算法提高 贪吃的大嘴
    Java实现 蓝桥杯VIP 算法提高 贪吃的大嘴
    Java实现 蓝桥杯VIP 算法提高 贪吃的大嘴
    Java实现 蓝桥杯VIP 算法提高 贪吃的大嘴
    Java实现 蓝桥杯VIP 算法提高 士兵排队问题
    Java实现 蓝桥杯VIP 算法提高 士兵排队问题
    Java实现 蓝桥杯VIP 算法提高 士兵排队问题
    Java实现 蓝桥杯VIP 算法提高 士兵排队问题
    Java实现 蓝桥杯VIP 算法提高 数字黑洞
    Minifilter微过滤框架:框架介绍以及驱动层和应用层的通讯
  • 原文地址:https://www.cnblogs.com/stone5/p/9018750.html
Copyright © 2011-2022 走看看