如何在父div中设置不透明度而不影响子div?

Roh*_*zad 72 css parent-child opacity css3

嘿,我在谷歌搜索,但我不能完美的答案

我希望父DIV中的不透明度而不是Child DIV

HTML

<div class="parent">
<div class="child">
Hello I am child 
</div>
</div>
Run Code Online (Sandbox Code Playgroud)

CSS

.parent{
background:url('../images/madu.jpg') no-repeat 0 0;
}
.child{
Color:black;
}
Run Code Online (Sandbox Code Playgroud)

注意: -我想要背景图像Parent Div不是颜色

小智 79

我知道这是旧的,但万一它会帮助别人.

<div style="background-color: rgba(255, 0, 0, 0.5)">child</div> 
Run Code Online (Sandbox Code Playgroud)

在哪里rgba:红色,绿色,蓝色,并且a是透明的.

  • ...aa 并且它不会影响子 div 中的其他背景颜色(只是一个快速说明) (2认同)

san*_*eep 44

如果在伪类中定义背景图像,可能会很好:after.像这样写:

.parent{
    width:300px;
    height:300px;
    position:relative;
    border:1px solid red;
}
.parent:after{
    content:'';
    background:url('http://www.dummyimage.com/300x300/000/fff&text=parent+image');
    width:300px;
    height:300px;
    position:absolute;
    top:0;
    left:0;
    opacity:0.5;
}
.child{
    background:yellow;
    position:relative;
    z-index:1;
}
Run Code Online (Sandbox Code Playgroud)

检查这个小提琴

  • 使用`background-color:rgba(255,255,255,0.3);`代替不透明度.它不会继承. (21认同)

Vla*_*kov 16

可以用伪元素来做 :( 在dabblet.com上演示) 在此输入图像描述

你的标记:

<div class="parent">
    <div class="child"> Hello I am child </div>
</div>
Run Code Online (Sandbox Code Playgroud)

CSS:

.parent{
    position: relative;
}

.parent:before {
    z-index: -1;
    content: '';
    position: absolute;

    opacity: 0.2;
    width: 400px;
    height: 200px;
    background: url('http://img42.imageshack.us/img42/1893/96c75664f7e94f9198ad113.png') no-repeat 0 0; 
}

.child{
    Color:black;
}
Run Code Online (Sandbox Code Playgroud)


小智 6

正如汤姆所说,background-color: rgba(229,229,229, 0.85)可以做到这一点.将它放在父元素的样式上,子元素不会受到影响.


Den*_*ret 5

你不能.Css今天根本不允许这样做.

逻辑渲染模型是这样的:

如果对象是容器元素,则效果就好像容器元素的内容使用掩码混合当前背景,其中掩码的每个像素的值是.

参考:css透明度

解决方案是使用不同的元素组合,通常使用固定或计算位置来定义为当前的孩子:对于作为孩子的用户来说,它可能在逻辑上和视觉上看起来很明显,但元素不一定是真正的孩子.你的代码.

使用css的解决方案:小提琴

.parent {
    width:500px;
    height:200px;    
    background-image:url('http://canop.org/blog/wp-content/uploads/2011/11/cropped-bandeau-cr%C3%AAte-011.jpg');
    opacity: 0.2;
}
.child {
    position: fixed;
    top:0;
}
Run Code Online (Sandbox Code Playgroud)

javascript的另一个解决方案:小提琴