好久没更新了,前一段时间忙着工作忙着健身,今天稍微闲下来了更新一些简单的内容。
在制作紧邻的两个元素时,发现元素的阴影(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;
}
结果成功了,如下图所示:
阴影展示出来了