更改背景图像不透明度

Vic*_*jee 28 html background-image opacity

我有一个带有文本块的div元素和一个父div,我在其中设置了一个背景图像.现在我想减少背景图像的不透明度.请建议我如何做到这一点.

提前致谢.

编辑:

我希望通过编辑html内容来改变我的博客文章对blogger.com的看法.html代码如下所示:

<div>
 //my blog post
</div>
Run Code Online (Sandbox Code Playgroud)

我尝试用div元素包围上面的整个代码,并分别设置每个div的不透明度,如下所示:

<div style="background-image:url("image.jpg"); opacity:0.5;">
<div style="opacity:1;">
 //my blog post
</div>
</div>
Run Code Online (Sandbox Code Playgroud)

但它没有用.

Car*_*s2W 32

如今,可以使用CSS属性"background-blend-mode"来完成它.

<div id="content">Only one div needed</div>

div#content {
    background-image: url(my_image.png);
    background-color: rgba(255,255,255,0.6);
    background-blend-mode: lighten;
    /* You may add things like width, height, background-size... */
}
Run Code Online (Sandbox Code Playgroud)

它会将背景颜色(白色,0.6不透明度)混合到背景图像中.在这里了解更多(W3S).

  • 很好的答案!更清洁的解决方案,但不幸的是不适用于 IE。 (2认同)
  • @tsvikas在IE上没有任何作用.老实说,除非是关于保护数据,否则我在编写网页时会考虑使用IE.:-P (2认同)

Ale*_*nov 27

您无法直接在背景图像上使用透明度,但您可以通过以下方式实现此效果:

http://jsfiddle.net/m4TgL/

HTML:

<div class="container">
    <div class="content">//my blog post</div>
</div>?
Run Code Online (Sandbox Code Playgroud)

CSS:

.container {  position: relative; }

.container:before {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 1;
    background-image: url('image.jpg');
   opacity: 0.5;
}

.content {
    position: relative; 
    z-index: 2;
}?
Run Code Online (Sandbox Code Playgroud)


小智 11

尝试这样做:

.bg_rgba {
  background-image: url(https://picsum.photos/200);
  background-color: rgba(255, 255, 255, 0.486);
  background-blend-mode: overlay;
  width: 200px;
  height: 200px;
  border: 1px solid black;
}
Run Code Online (Sandbox Code Playgroud)
<div class="bg_rgba"></div>
Run Code Online (Sandbox Code Playgroud)

在我的情况下工作。您可以根据需要减少或增加背景颜色的 alpha 值。


tec*_*bar 8

没有什么叫做背景不透明.不透明度应用于元素,其内容及其所有子元素.并且只能通过覆盖子元素中的不透明度来改变此行为.

儿童与父母的不透明度是一个长期存在的问题,最常见的解决方法是使用rgba(r,g,b,alpha)背景颜色.但在这种情况下,由于它是背景图像,该解决方案将无法工作.一种解决方案是将图像生成为具有图像本身中所需不透明度的PNG.另一个解决方案是将孩子分开并使其绝对定位.

  • 2021 更新:看来“background”现在支持“rgba()”。请参阅@Nur Nas 或@Shreyas Shrawage 的答案。 (2认同)

小智 7

您也可以简单地使用这个:

.bg_rgba {
  background: linear-gradient(0deg, rgba(255, 255, 255, 0.9), rgba(255, 255, 255, 0.9)), url('https://picsum.photos/200');
  width: 200px;
  height: 200px;
  border: 1px solid black;
}
Run Code Online (Sandbox Code Playgroud)
<div class='bg_rgba'></div>
Run Code Online (Sandbox Code Playgroud)

您可以根据自己的喜好更改颜色的不透明度。