css z-index无效

z-index无效的情况有:
(1)父标签position属性为relative;
(2)问题标签无position属性(不包括static)
(3)问题标签含有浮动(float)属性

所以这就解释了为什么parent设置了position和z-index之后grandparent的z-index就会失效的问题,

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

所以,去掉parent的position和z-index,达到了想要的效果

控制层级显示时,若父元素是position: relative; 子元素是position: absolute; 此时z-index失效,但是父元素和子元素的position属性不能动,则可以试试把z-index值设置为负值。

实例

<style type="text/css">
    .grandparent{
        position: relative;
        z-index:100;
        background: green;
        width:300px;
        height:300px;
        top:100px;
    }
    .parent{
        /*position:relative;
        z-index: 100;*/
        width:200px;
        height:200px;
        /*left:0;
        top:-50px;*/
        border:1px solid #eee;
    }
    .son1{
        position: relative;
        z-index:110;
        width:100px;
        height:100px;
        left:0;
        top:0;
        background: blue;
    }
    .son2{
        position:relative;
        z-index: 5;
        width:200px;
        height:200px;
        background: red;
        top:-100px;
        left:0;
    }
</style>
<div class="grandparent">grandparent</div>
    <div class="parent">
        <div class="son1">parent-son1</div>
        <div class="son2">parent-son2</div>
    </div>
</div>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值