我有一个带有文本块的div元素和一个父div,我在其中设置了一个背景图像。现在我想减少背景图像的不透明度。请建议我如何做到这一点。
提前致谢。
编辑:
我希望通过编辑html内容来改变我的博客文章对blogger.com的看法。 html代码如下所示:
<div>
//my blog post
</div>
我试图用div元素包围上面的整个代码,并分别设置每个div的不透明度,如下所示:
<div style="background-image:url("image.jpg"); opacity:0.5;">
<div style="opacity:1;">
//my blog post
</div>
</div>
但它没有用。
答案 0 :(得分:27)
您无法直接在背景图像上使用透明度,但您可以通过以下方式实现此效果:
HTML:
<div class="container">
<div class="content">//my blog post</div>
</div>
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;
}
答案 1 :(得分:26)
如今,只需使用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... */
}
它会将背景颜色(白色,0.6不透明度)混合到背景图像中。了解详情here (W3S)。
答案 2 :(得分:7)
没有什么叫做背景不透明。不透明度应用于元素,其内容及其所有子元素。并且只能通过覆盖子元素中的不透明度来改变这种行为。
儿童与父母不透明度是一个长期存在的问题,最常见的解决方法是使用rgba(r,g,b,alpha)
背景颜色。但在这种情况下,由于它是背景图像,该解决方案将无法工作。一种解决方案是将图像生成为具有图像本身中所需不透明度的PNG。另一种解决方案是将孩子分开并使其绝对定位。
答案 3 :(得分:4)
尝试这样做:
background-image: url(*your URL*);
background-color: rgba(255, 255, 255, 0.486);
background-blend-mode: overlay;
以我的情况工作。 您可以根据需要减少或增加背景色的Alpha值。
答案 4 :(得分:3)
您可以创建多个div并执行此操作:
<div style="width:100px; height:100px;">
<div style="position:relative; top:0px; left:0px; width:100px; height:100px; opacity:0.3;"><img src="urltoimage" alt=" " /></div>
<div style="position:relative; top:0px; left:0px; width:100px; height:100px;"> DIV with no opacity </div>
</div>
我做了那几次......简单但有效......
答案 5 :(得分:2)
你也可以简单地使用这个:
.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;
}
<div class='bg_rgba'></div>
您可以根据自己的喜好更改颜色的不透明度。
答案 6 :(得分:0)
响应之前的评论,如果CSS位于您的php页面而不是css样式表中,您可以在“容器”示例中按变量更改背景。
$bgimage = '[some image url];
background-image: url('<?php echo $bgimage; ?>');
答案 7 :(得分:0)
我做的是:
<div id="bg-image"></div>
<div class="container">
<h1>Hello World!</h1>
</div>
CSS:
html {
height: 100%;
width: 100%;
}
body {
height: 100%;
width: 100%;
}
#bg-image {
height: 100%;
width: 100%;
position: absolute;
background-image: url(images/background.jpg);
background-position: center center;
background-repeat: no-repeat;
background-size: cover;
opacity: 0.3;
}
答案 8 :(得分:-3)
你可以通过简单的代码来做到这一点:
filter:alpha(opacity=30);
-moz-opacity:0.3;
-khtml-opacity: 0.3;
opacity: 0.3;