在写项目页面的过程中,遇到子元素继承父元素透明度的问题,查找了好多文档给出的都是第一种方法,这种方法主要解决简单场景的,而对于设置复杂的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子元素继承父元素透明度内容请搜索脚本之家以前的文章或继续浏览下面的相关文章,希望大家以后多多支持脚本之家!
一、少用偏门。 类似break-word断行,z-index手动分层,还有像垂直对齐等等这些...
接口和类型别名非常相似,在大多情况下二者可以互换。在写TS的时候,想必大家都...
前言 当页面的html结构嵌套的盒子很多的时候,可能会导致一个页面中含有多个垂直...
先来看一下效果,这在CSS3之前,完全是不可想象的,只有图片才能做的到,但在HTM...
在经典配色中,可能每个人都不会否认黑白灰的永恒魅力。虽然人们总是想outstandi...
如上图,padding值是复合属性按照顺时针(上右下做)顺序,其中padding的内边距影响...
1.什么是母校?就是那个你一天骂他八遍却不许别人骂的地方。 2.拍毕业照三秒的...
recorder.js microphone基于HTML5的录音功能,输出格式为mp3文件。 前言 完全依...
简介 Amaze UI 是一个针对 HTML 5 开发的轻量级、模块化、移动优先的跨屏前端框...
png透明 AlphaImageLoader filter:progid:DXImageTransform.Microsoft.AlphaImag...