0

我有几个 div,每个都有一个背景图像。我正在使用响应式和自适应 CSS,当我的 div 宽度小于某个大小(760 像素 btw)时,文本和一些带有样式的表格变得难以阅读/看到,背景图像在它们后面移动(背景图像位于文本/表格的最右侧,如果宽度超过760 像素,则不显眼......)。因此,当视口的宽度达到 760px 或更少时,我只希望背景图像具有不透明度......

我怎么做?

所以我的 CSS 是这样开始的:

@media screen and (max-width: 760px){
   background: #cdcdcd url("/images/back.jpg") no-repeat top right;
    /*How do I set the opacity of only the background?*/
} 
4

2 回答 2

3

您无法更改背景图像的不透明度,除非您将其移动到单独的容器中。

您可以更改的只是 BG 颜色的不透明度,使用rgba()

background: rgba(0, 0, 0, .5);
于 2012-08-16T18:29:34.610 回答
1

您不能只为背景设置不透明度,而是为整个元素设置不透明度。您可以设置背景颜色的不透明度(有关示例,请参见Zoltan 的答案)。


您可以在图像上设置白色<div>并更改其不透明度。

<div class="yourImage">
    <div class="imageCover"></div>
</div>
.yourImage {
  background: url(http://blog.stackoverflow.com/wp-content/uploads/stackoverflow-logo-300.png);
  width: 300px;
  height: 83px;
}
.imageCover {
  background: #fff;
  width: 300px;
  height: 83px;
  opacity: .5;
}

现场演示:Tinkerbin


但是,如果您的图像后面没有干净的背景,这将不起作用。

于 2012-08-16T18:49:22.023 回答