有没有办法给 background-image 设置透明度?

Benjamin
  • 550

如题,现在是没法改图片本身的透明度,该图片以 background-image 写在 css 里,不知道有没有办法给他设置透明度?

回复
阅读 79.8k
7 个回答
div{
    position: relative;        
}
div:after{
    content: '';
    display: block;
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    background: url(...);
    opacity: 0.5;
}

可以做到的,只要把用到的 background 属性都写成一条就可以了,如下

background: linear-gradient(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5)), url('http://placehold.it/350x150') no-repeat 0% 20%/ cover;
  1. 背景图用png,有透明度。
  2. 元素设置透明度当背景,另一个元素遮盖到上面 客串下它儿子,假装是这个元素的内容。

无法改变图片本身的透明度,那只能改变整个DIV的透明度来达到类似的视觉效果:
1.opacity属性
2.如果兼容性允许的话使用css3滤镜-webkit-filter(有别于之前的IE滤镜)。

解决的方式就是包含背景的元素和文字元素互斥就行了,让它俩都包含在第三个元素内

宣传栏