【问题标题】:Applying opacity to a image causes the absolute div also transparent对图像应用不透明度会导致绝对 div 也透明
【发布时间】:2014-03-05 19:09:34
【问题描述】:

我有一个以下结构的图片库:

<div class="gallery">
    <div class="message">
        Welcome to gallery
    </div>    
    <img src="http://placehold.it/300x300" />
</div>   

还有 CSS :

.message {
    position:absolute;
    left:10px;
    top:20px;
    height:30px;
    width:140px;
    background:#333;
}
.gallery img {
    opacity:.85;
}

但这会导致 div message 也透明!如何预防?透明的原因是什么?

DEMO

【问题讨论】:

  • 我看不到透明的 div。你确定这是问题所在?

标签: css image opacity absolute


【解决方案1】:

图像似乎位于消息 div 的顶部。我只是像这样交换了它们:

<img src="http://placehold.it/300x300" />
<div class="message">
    Welcome to image gallery
</div>   

这为我解决了问题。

fiddle

另一种方法是给消息一个 z-index,如下所示:

.message {
    position:absolute;
    left:150px;
    top:20px;
    height:30px;
    width:140px;
    background:#333;
    z-index: 2;
}

.gallery img {
    opacity:.85;
}

fiddle

【讨论】:

    【解决方案2】:

    你可以给图片一个id,这样只有图片的不透明度会更低

    #img{ opacity: 85%; }
    <img src="http://placehold.it/300x300" id="img" />
    

    或者你可以使用一个类

    .img{ opacity: 85%; }
    <img src="http://placehold.it/300x300" id="img" />
    

    那么你的可能会是这样的:

        <div class="gallery">
        <div class="message">
            Welcome to image gallery
        </div>    
        <img src="http://placehold.it/300x300" class="img"/>
    </div>
    #img{ opacity: 85%; }
    .img{ opacity: 85%; }
    .message {
        position:absolute;
        left:10px;
        top:20px;
        height:30px;
        width:140px;
        background:#333;
    }
    

    希望对您有所帮助! Demo

    【讨论】:

    • 这个解决方案在 Safari7 上对我不起作用。图像仍然具有 100% 的不透明度。当我将 85% 更改为 .85 时,问题仍然存在..
    • 你需要在值后面加上 % 符号,如果你没有 % 符号,它就不会知道它是百分比、像素还是其他任何东西。你可以试试.img{ opacity: .85%; },如果它可以在 safari 中工作。
    • 如果您使用 safari,请尝试将 css 更改为 .img{ opacity: .85%; }。我正在使用 chrome,所以我真的不知道为什么它不适用于 safari,我会尽力帮助你,但如果我不能,我很抱歉
    • 0.85% 没有意义。不透明度是 css 中 0 到 1 之间的值。 developer.mozilla.org/en-US/docs/Web/CSS/opacity
    • 为 mozilla firefox 尝试类似@-moz-document url-prefix() { #img{ opacity: 0.1; } }
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-02
    • 2012-08-06
    • 1970-01-01
    • 1970-01-01
    • 2016-12-02
    • 2011-09-08
    相关资源
    最近更新 更多