在写项目页面的 过程中 ,遇到子元素继承父元素透明度的问题,查找了好多文档给出的都是第一种方法,这种方法主要解决 简单 场景的,而对于设置复杂的background时,该方法不再适用。
分析 原因 :
父元素 背景颜色 设置透明度opac IT y:0.5,子元素会继承,给子元素设置opacity:1,子元素的透明度也是在父元素0.5的基础上设置的。
第一种方法:
父元素背景颜色设置透明度时,避免使用background: # 000;opacity:0.5,建议使用background:rgba(0,0,0,0.5)
第二种方法:
如果设置背景色为渐变色等这种复杂背景,第一种方法就不在适用。
&nbs p;
background -i mage: linear-gra die nt(-180 deg , rgba(20,20,20,0.00) 19%, #303030 100%); opacity: 0.5;
因为子元素会继承父元素的opacity属性,我们让它不成为子元素。新增一个子元素,将其绝对定位到父元素位置,然后在该元素上设置背景色与透明度。
<div class="cont ai ner"> <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; h ei ght: 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:" PR ogid:DXImageTransform.Microsoft.Alpha(Opacity=50)"; filter: alpha(opacity=50); opacity:.5; }
参考: https://www.cnblogs.com/liu-l/p/3890861.html
到此这篇关于详解CSS-opacity子元素继承父元素透明度的解决方法的 文章 就介绍到这了,更多相关CSS-opacity子元素继承父元素透明度内容请搜索以前的文章或继续浏览下面的相关文章,希望大家以后多多支持!
总结
以上是 为你收集整理的 详解CSS-opacity子元素继承父元素透明度的解决方法 全部内容,希望文章能够帮你解决 详解CSS-opacity子元素继承父元素透明度的解决方法 所遇到的问题。
如果觉得 网站内容还不错, 推荐好友。
查看更多关于详解CSS-opacity子元素继承父元素透明度的解决方法的详细内容...