父元素opacity属性对子元素的影响(子元素设置opacity无效)
大家好,又见面了,我是你们的朋友全栈君。
问题来源于实践
这段时间做了一个项目优化,对于原有的内容进行了重新设计实现,其中一项就是对于label标签添加hover层进行解释说明,最常用的办法及时label的容器设置relative,然后hover层作为它的子元素设置absolute,然后在使用label的hover伪类来控制hover层的显示和隐藏,这其中一个要求及时hover层必定要求能够遮住页面中其他的元素,所以最常用的办法是设置它的背景颜色,然后让它的z-index处于合理的位置,一切都是这样设计的,但是最终的效果却出现了hover层设置bg为#fff的时候,hover层显示时还是会把底部内容给透出来,第一反应就是opacity设置为1,但是还是没有效果(因为背景为白色,所以有点坑)
最终问题定位在父元素的opacity属性设置为不为1的值导致的,这样即使hover层(作为子元素)设置了bg和opacity为1,也依然会存在一定的透明度。
testcode:
<style type='text/css'>
.container{
width:400px;
height: 400px;
border:1px solid red;
border-radius: 8px;
position: relative;
opacity: 0.5;
.child{
position: absolute;
border:1px solid gray;
border-radius: 6px;
width:200px;
height: 200px;
bottom: -180px;
opacity: 1;
font-weight: bold;
background: #0000ff;
</style>
</head>
<div class="container">
<h2>this is a container with opacity : 0.5</h2>