关于z-index失效的问题

存在现象

在制作紧邻的两个元素时,发现元素的阴影(box-shadow)部分被遮挡。
两个元素直接没有空隙,但最终状态是上方盒子展示阴影。
情况如下图所示:


image.png

代码如下

<style>
*{
    margin: 0;
    padding: 0;
}
.box1{
    width: 100%;
    height: 72px;
    background: green;
    box-shadow: 1px 1px 10px #999;
    z-index:999
}
.box2{
    width: 100%;
    height: 500px;
    background: pink;
    z-index:1
}
</style>

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

问题在于设置了没用啊!z-index无论是100还是1000或是9999999,多大的z-index值都没用。
还是去查查z-index属性吧,到底是怎样的?

z-index

定义和用法

  • z-index 属性设置元素的堆叠顺序。拥有更高堆叠顺序的元素总是会处于堆叠顺序较低的元素的前面。
  • 元素可拥有负的 z-index 属性值。
  • z-index 仅能在定位元素上奏效(例如 position:absolute;)

浏览器支持

  • 所有主流浏览器都支持 z-index 属性。
  • 注释:任何的版本的 Internet Explorer (包括 IE8)都不支持属性值 "inherit"。

说明

  • 该属性设置一个定位元素沿 z 轴的位置,z 轴定义为垂直延伸到显示区的轴。如果为正数,则离用户更近,为负数则表示离用户更远。

z-index只对定位元素有效!也就是说我们需要给box1加一个position:relative/absolute。

<style>
box1{
    position: relative;
    width: 100%;
    height: 72px;
    background: green;
    box-shadow: 1px 1px 10px #999;
    z-index:999
}
.box2{
    position: relative;
    width: 100%;
    height: 500px;
    background: pink;
    z-index:1
}
</style>

效果如图


image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。