无法控制 div 内图像的不透明度

Posted

技术标签:

【中文标题】无法控制 div 内图像的不透明度【英文标题】:Unable to control opacity of image inside div 【发布时间】:2012-08-29 11:10:23 【问题描述】:

我希望 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;

【问题讨论】:

类似:[***.com/questions/5662178/… [1]:***.com/questions/5662178/… 【参考方案1】:

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

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

【讨论】:

【参考方案2】:

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

#targetframe > * 
    opacity: 0.5;

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

.myimage 
    opacity: 1;

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

【讨论】:

【参考方案3】:

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

【讨论】:

以上是关于无法控制 div 内图像的不透明度的主要内容,如果未能解决你的问题,请参考以下文章

切换div onclick的不透明度

div内图像的垂直对齐

div内图像的垂直中间对齐? [复制]

如何在不更改 div 大小的情况下更改 div 内图像的大小

减少一个 div 中的背景图像不透明度 [重复]

CSS - 低不透明度div上的不透明文本?