详解CSS-opacity子元素继承父元素透明度的解决方法

在写项目页面的过程中,遇到子元素继承父元素透明度的问题,查找了好多文档给出的都是第一种方法,这种方法主要解决简单场景的,而对于设置复杂的background时,该方法不再适用。
分析原因:
父元素背景颜色设置透明度opacity:0.5,子元素会继承,给子元素设置opacity:1,子元素的透明度也是在父元素0.5的基础上设置的。
第一种方法:
父元素背景颜色设置透明度时,避免使用background:#000;opacity:0.5,建议使用background:rgba(0,0,0,0.5)
第二种方法:
如果设置背景色为渐变色等这种复杂背景,第一种方法就不在适用。
background-image: linear-gradient(-180deg, rgba(20,20,20,0.00) 19%, #303030 100%); opacity: 0.5;
因为子元素会继承父元素的opacity属性,我们让它不成为子元素。新增一个子元素,将其绝对定位到父元素位置,然后在该元素上设置背景色与透明度。
<div class="container"> <div class="content"> <p>我是class为content的DIV</p> <p>我的背景是class为background的背景</p> <p>通过相对定位和绝对定位,我把class为background的DIV移动到了我的位置。</p> <p>同时通过我的较大的z-index浮在了它的上面。 :)</p> </div> <div class="background"></div> </div>
.container { width: 300px; height: 250px; color: #fff; position:relative; } .content { position:relative; z-index:5; width: 100%; height: 100%; overflow: hidden; } .background { background-color: #37a7d7; position:absolute; top:0px; left:0px; width:100%; height:100%; z-index:1; /*兼容IE7、8 */ -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=50)"; filter: alpha(opacity=50); opacity:.5; }
参考:https://www.cnblogs.com/liu-l/p/3890861.html
到此这篇关于详解CSS-opacity子元素继承父元素透明度的解决方法的文章就介绍到这了,更多相关CSS-opacity子元素继承父元素透明度内容请搜索脚本之家以前的文章或继续浏览下面的相关文章,希望大家以后多多支持脚本之家!
相关文章
- 这篇文章主要介绍了通过css3动画和opacity透明度实现呼吸灯效果,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编2019-08-09
- 对于设置透明度,我们有两个可以选的css3属性:rgba 和 opacity。这篇文章主要介绍了详解css透明度之rgba和opacity的区别及兼容,感兴趣的可以一起跟随小编来了解一下2019-01-10
CSS中 opacity的设置影响了index(层数)的改变的问题总结(推荐)
这篇文章主要介绍了CSS中 opacity的设置影响了index(层数)的改变的问题,通过各种情况出现的问题进行了总结并附上了代码,具体操作步骤大家可查看下文的详细讲解,感兴趣2017-08-17css中使用rgba和opacity设置透明度的区别(附图)
这篇文章主要介绍了css中使用rgba和opacity设置透明度的两种方法,通过实例演示解释了两者之间的差别,需要的朋友可以参考下2017-08-14详解CSS透明opacity和IE各版本透明度滤镜filter的最准确用法
CSS3的透明度属性opacity想必大家都已经用的无处不在了。而对于不支持CSS3的浏览器如何进行透明处理,保持浏览器效果的一致,本篇文章主要介绍了详解CSS透明opacity和IE各版2016-12-20- 这篇文章主要介绍了解决CSS3的opacity属性带来的层叠顺序问题的方法,主要针对opacity的属性值小于1的层会覆盖在其他层之上的问题,需要的朋友可以参考下2016-05-09
- 这篇文章主要介绍了详解CSS3的opacity属性设置透明效果的用法,同时还讲到了opacity透明度带有的继承性影响子集元素的问题,值得初学者注意,需要的朋友可以参考下2016-05-09
- 用来设定元素透明度的 Opacity 是CSS 3里的一个属性。当然现在还只有少部分浏览器支持,不过各个浏览器都有自己的私有属性来支持,其中包括老版本的Mozilla和Safari2015-11-09
- 这篇文章主要介绍了CSS3中的opacity属性使用教程,主要用来设置透明效果,需要的朋友可以参考下2015-08-19
- CSS 图像透明度opacity想必大家并不陌生吧,使其可以让图片或者页面拥有透明效果,下面为大家讲解下CSS opacity的使用及其兼容性,感兴趣的朋友可以参考下2013-09-08
最新评论