美文网首页
如何解决box-shadow被紧邻的元素遮住

如何解决box-shadow被紧邻的元素遮住

作者: AmazingMax | 来源:发表于2018-10-30 14:06 被阅读65次

好久没更新了,前一段时间忙着工作忙着健身,今天稍微闲下来了更新一些简单的内容。
在制作紧邻的两个元素时,发现元素的阴影(box-shadow)部分被遮挡住了,来看看问题怎样解决。

存在现象

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


箭头所指阴影被遮挡

思考

这可怎么办啊?我们考虑层级的问题,给菜单设置一个更高的z-index吧。
于是菜单的样式多了一条z-index:

.menu-bar{
    width: 200px;
    box-shadow: 0 2px 10px rgba(0, 5, 10, .4);
    z-index: 100;
    box-sizing: border-box;
}

问题在于设置了没用啊!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只对定位元素有效!也就是说我们需要给菜单元素一个position:relative/absolute。

.menu-bar{
    position:relative;
    width: 200px;
    box-shadow: 0 2px 10px rgba(0, 5, 10, .4);
    z-index: 100;
    box-sizing: border-box;
}

结果成功了,如下图所示:


阴影展示出来了

相关文章

网友评论

      本文标题:如何解决box-shadow被紧邻的元素遮住

      本文链接:https://www.haomeiwen.com/subject/tzlgtqtx.html