使用CSS使背景图像透明

时间:2011-04-12 13:39:16

标签: css transparency background-image

我有一个场景,我需要一个透明的背景图像,但我无法控制我使用的动态生成的图像。因此,透明PNG是不可能的。同一div中的所有子元素都不应该生效,应该完全可见。

我知道如何将透明度应用于背景颜色和块级元素,但是您可以为背景图像执行此操作吗?

3 个答案:

答案 0 :(得分:3)

使用背景设置元素的不透明度是一个好的开始,但您会看到不透明度更改的元素中的任何元素也将是透明的。

方法是让一个元素包含背景并且是透明的(opacity:0.6; filter:alpha(opacity=60)),然后将容器上的实际内容浮动或放置在其上。

以下是此方法的工作原理示例:

#container {
    width: 200px;
    postiion: relative;
  }
  
  #semitrans {
    width: 100%; height: 100px;
    background: #f00;
    opacity: 0.6;
    filter:alpha(opacity=60);
  }
  
  #hello {
    width: 100%; height: 100px;
    position: absolute;
    top: 20px; left: 20px;
  }
  
<div id="container">
    <div id="semitrans"></div>
    <p id="hello">Hello World</p>
</div>

答案 1 :(得分:1)

IE使用filter:alpha(opacity=50);而其他人使用opacity:.5
只需将它们包括在内。

答案 2 :(得分:1)

没有。不是技术上的。您必须应用背景颜色才能使其生效,因为您将淡化颜色和图像,而不仅仅是图像。请记住,背景图像不是可设置样式的内容。

你可能通过使用图像而不是背景图像来破解它,并且在顶部有一些z-indexing的相对和绝对定位的混合。但这是我能想到的唯一方式!