我可以在CSS参考中看到如何设置图像透明度和如何设置背景图像。但是我如何将这两者结合起来以设置透明的背景图像呢?
我有一张图片,我想用它作为背景,但它太亮了,我想把不透明度降低到0.2左右。我该怎么做呢?
#main {
background-image: url(/wp-content/uploads/2010/11/tandem.jpg);
}
我可以在CSS参考中看到如何设置图像透明度和如何设置背景图像。但是我如何将这两者结合起来以设置透明的背景图像呢?
我有一张图片,我想用它作为背景,但它太亮了,我想把不透明度降低到0.2左右。我该怎么做呢?
#main {
background-image: url(/wp-content/uploads/2010/11/tandem.jpg);
}
当前回答
我看到了这个,在CSS3中,你现在可以像这样放置代码。假设我想让它覆盖整个背景,我会这样做。然后使用hsla(0,0%,100%,0.70)或rgba,你可以使用白色背景和任意百分比的饱和度或不透明度来获得你想要的效果。
.body{
background-attachment: fixed;
background-image: url(../images/Store1.jpeg);
display: block;
position: absolute;
left: 0;
top: 0;
width: 100%;
height: 100%;
z-index: 1;
background-color: hsla(0,0%,100%,0.70);
background-blend-mode: overlay;
background-repeat: no-repeat;
}
其他回答
我也遇到了类似的问题,我只是用photoshop把背景图片用我需要的不透明度创建了一个新的。png。问题解决了,不用担心我的CSS是否在所有设备和浏览器上工作
1 div和无透明图像的解决方案:
你可以使用多背景CSS3特性,放两个背景:一个是图片,另一个是透明面板(因为我认为没有办法直接设置背景图片的不透明度):
background: -moz-linear-gradient(top, rgba(0, 0, 0, 0.7) 0%, rgba(0, 0, 0, 0.7) 100%), url(bg.png) repeat 0 0, url(https://cdn.sstatic.net/stackoverflow/img/apple-touch-icon.png) repeat 0 0;
background: -moz-linear-gradient(top, rgba(255,255,255,0.7) 0%, rgba(255,255,255,0.7) 100%), url(https://cdn.sstatic.net/stackoverflow/img/apple-touch-icon.png) repeat 0 0;
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(255,255,255,0.7)), color-stop(100%,rgba(255,255,255,0.7))), url(https://cdn.sstatic.net/stackoverflow/img/apple-touch-icon.png) repeat 0 0;
background: -webkit-linear-gradient(top, rgba(255,255,255,0.7) 0%,rgba(255,255,255,0.7) 100%), url(https://cdn.sstatic.net/stackoverflow/img/apple-touch-icon.png) repeat 0 0;
background: -o-linear-gradient(top, rgba(255,255,255,0.7) 0%,rgba(255,255,255,0.7) 100%), url(https://cdn.sstatic.net/stackoverflow/img/apple-touch-icon.png) repeat 0 0;
background: -ms-linear-gradient(top, rgba(255,255,255,0.7) 0%,rgba(255,255,255,0.7) 100%), url(https://cdn.sstatic.net/stackoverflow/img/apple-touch-icon.png) repeat 0 0;
background: linear-gradient(to bottom, rgba(255,255,255,0.7) 0%,rgba(255,255,255,0.7) 100%), url(https://cdn.sstatic.net/stackoverflow/img/apple-touch-icon.png) repeat 0 0;
您不能使用rgba(255,255,255,0.5),因为单独使用它只在后面被接受,所以在本例中,我为每个浏览器都使用了生成的梯度(这就是为什么它这么长)。但是概念是这样的:
background: tranparentColor, url("myImage");
http://jsfiddle.net/pBVsD/1/
两种方法:
转换为PNG,使原始图像的透明度为0.2 (更好的方法)有一个<div>, position: absolute;在#main之前,高度与#main相同,然后应用background-image,不透明度:0.2;过滤器:α(不透明度= 20);。
#main {
position: relative;
}
#main:after {
content : "";
display: block;
position: absolute;
top: 0;
left: 0;
background-image: url(/wp-content/uploads/2010/11/tandem.jpg);
width: 100%;
height: 100%;
opacity : 0.2;
z-index: -1;
}
在CSS中添加…
filter: opacity(50%);
在JavaScript中使用…
element.style.filter='opacity(50%)';
注:根据需要添加供应商前缀,但铬应该没有。