我可以在CSS参考中看到如何设置图像透明度和如何设置背景图像。但是我如何将这两者结合起来以设置透明的背景图像呢?

我有一张图片,我想用它作为背景,但它太亮了,我想把不透明度降低到0.2左右。我该怎么做呢?

#main {
    background-image: url(/wp-content/uploads/2010/11/tandem.jpg); 
}

当前回答

你可以使用CSS的psuedo选择器::after来实现这一点。这里是一个工作演示。

.bg-container{ width: 100%; height: 300px; border: 1px solid #000; position: relative; } .bg-container .content{ position: absolute; z-index:999; text-align: center; width: 100%; } .bg-container::after{ content: ""; position: absolute; top: 0px; left: 0px; width: 100%; height: 100%; z-index:-99; background-image: url(https://i.stack.imgur.com/Hp53k.jpg); background-size: cover; opacity: 0.4; } <div class="bg-container"> <div class="content"> <h1>Background Opacity 0.4</h1> </div> </div>

其他回答

好吧,唯一的CSS方式只做背景透明是通过RGBa,但因为你想使用图像,我建议使用Photoshop或Gimp使图像透明,然后使用它作为背景。

两种方法:

转换为PNG,使原始图像的透明度为0.2 (更好的方法)有一个<div>, position: absolute;在#main之前,高度与#main相同,然后应用background-image,不透明度:0.2;过滤器:α(不透明度= 20);。

你可以使用CSS的psuedo选择器::after来实现这一点。这里是一个工作演示。

.bg-container{ width: 100%; height: 300px; border: 1px solid #000; position: relative; } .bg-container .content{ position: absolute; z-index:999; text-align: center; width: 100%; } .bg-container::after{ content: ""; position: absolute; top: 0px; left: 0px; width: 100%; height: 100%; z-index:-99; background-image: url(https://i.stack.imgur.com/Hp53k.jpg); background-size: cover; opacity: 0.4; } <div class="bg-container"> <div class="content"> <h1>Background Opacity 0.4</h1> </div> </div>

我也遇到了类似的问题,我只是用photoshop把背景图片用我需要的不透明度创建了一个新的。png。问题解决了,不用担心我的CSS是否在所有设备和浏览器上工作

我用了@Dan Eastwell的答案,效果很好。该代码与他的代码类似,但增加了一些内容。

.granddata {
    position: relative;
    margin-left :0.5%;
    margin-right :0.5%;
}
.granddata:after {
    content : "";
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    background-image: url("/Images/blabla.jpg");
    width: 100%;
    height: 100%;
    opacity: 0.2;
    z-index: -1;
    background-repeat: no-repeat;
    background-position: center;
    background-attachment:fixed;
}