6

我希望 div 内的图像是不透明的,而 div 是透明的。我尝试设置图像和 div 的不透明度,但它不起作用。

jsFiddle 链接:http: //jsfiddle.net/2BNEF/10/

我希望图像不透明,文本透明可见。

<div id="targetframe">
    It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout. The point of using Lorem Ipsum is that it has a more-or-less normal distribution of letters, as opposed to using 'Content here, content here', making it look like readable English. Many desktop publishing packages and web page editors now use Lorem Ipsum as their default model text, and a search for 'lorem ipsum' will uncover many web sites still in their infancy. Various versions have evolved over the years, sometimes
    <div id="target">
        out. The point of using Lorem Ipsum is that it has a more-or-less normal distribution of letters, as opposed to using 'Content here, content here', making it look like readable English. Many desktop publishing packages and web page editors now use Lorem Ipsum as their defaul
        <img class="myimage" src="http://www4.picturepush.com/photo/a/1365552/480/trucks-photgraphy/asdf-%2858%29.jpg?v0"/>
    </div>
</div>


#targetframe {
    background: none repeat scroll 0 0 black;
    border: 2px inset grey;
    font-family: Verdana,sans-serif;
    left: 0;
    margin: 0;
    overflow: hidden;
    padding: 0;
    position: absolute;
    top: 0;
    opacity: 0.5;
}
#target {
    background: none repeat scroll 0 0 transparent;
    height: 100%;
    left: 0;
    position: relative;
    top: 0;
    width: 100%;
    z-index: 0;
}
.myimage {
    opacity: 1;
}
4

3 回答 3

7

如果你设置opacity一个元素,那么它会被该元素的所有后代(孩子,所有孩子的孩子......)继承,你无法阻止它

在这种情况下,您可以只为 div 使用 RGBa 背景(rgba(0,0,0,.5)而不是黑色 - DEMO)。RGBa 有很好的支持 - 唯一不支持它的浏览器是 IE8 和更旧的浏览器,对于那些你可以使用filter渐变的浏览器。

于 2012-09-04T18:42:48.123 回答
1

正如@Ana所说,不透明度由父母的所有孩子继承
您可以组合RGBa并将不透明度设置为Div的所有孩子

#targetframe > * {
    opacity: 0.5;
}

而不是指定您的图像必须是不透明的

.myimage {
    opacity: 1;
}

http://jsfiddle.net/2BNEF/15/

于 2012-09-04T18:46:14.417 回答
1

或者只是将容器作为具有所需高度和宽度的绝对定位 div 并定位图像,并为图像分配更高的 z-index,然后分配所需的不透明度。

于 2012-09-04T18:53:49.603 回答