其他分享
首页 > 其他分享> > CSS定位与层级的理解

CSS定位与层级的理解

作者:互联网

       有一次写项目,发现了一个我个人未理解的一个问题,就是z-index在定位中失效了,后来才发现假如给予层级、定位的盒子与另一个给予层级、定位的盒子为父子关系,那么z-index是不生效的。

       尤其是在早期使用JS写页面下拉菜单效果的时候,时常(个人)会把下拉菜单内容写在导航栏里面,再用定位,这就造成了一个问题,下拉菜单会从导航栏z轴最上面滑出,这时我们使用z-index是不生效的,因为下拉菜单和导航栏是夫父子关系。下面我用代码来解释一下:


    <div class="box1">1 
        <div class="box2">2</div>
    </div>

    <div class="box3">3</div>

       这里我们准备了三个盒子,其中box1与box2为父子关系,box2为box1的子,box3为box2的兄弟。我们给这三个盒子都设置定位和z-index:


        .box1 {
            width: 200px;
            height: 200px;
            background-color: tomato;
            position: relative;
            z-index: 2;
        }

        .box2 {
            width: 200px;
            height: 200px;
            background-color: greenyellow;
            position: absolute;
            z-index: 1;
        }

        .box3 {
            width: 200px;
            height: 200px;
            background-color: skyblue;
            position: absolute;
            top:80px;
            z-index: 1;
        }

       这里我们把box1的z-index调为2,其它盒子的层级调为1。结果为box2浮在所有盒子上方,box3浮于box1下方,由此我们可以得出,z-index对于父子关系的盒子是不生效的,子级永远会浮于父元素的上方,所以我们制作下拉菜单时尽量使用兄弟关系的盒子哦~

 以上是个人遇到的问题,希望能帮助到遇到同样问题的大家~~(萌新瑟瑟发抖)

标签:定位,层级,盒子,index,box2,box1,下拉菜单,CSS,200px
来源: https://blog.csdn.net/qq_44644791/article/details/121217421