如何在其父容器的不透明度为50时保持文本不透明度为100

时间:2011-06-22 21:28:08

标签: css html opacity

我有一个列表div,其不透明度设置为50,在此div中我想显示一些不透明度为100的文本,

这就是我的意思:

<div id="outer">
  <div id="inner">
    Text
  </div>
</div>

CSS将是:

#outer {
  opacity: 0.5;
}

#inner {
  opacity: 1.0;
}

我试过了,但它不起作用。

请帮助

此致

5 个答案:

答案 0 :(得分:18)

一个简单且兼容的解决方案是删除所有opacity,然后使用:

#outer {
    background: url(50%-transparent-white.png);
    background: rgba(255,255,255,0.5)
}
  • 支持rgba的浏览器将使用background的第二个rgba声明。
  • 浏览器that do not将忽略第二个background声明并使用.png

.png在IE6中不起作用,但unlikely问题。如果是,it can be resolved


此处详述了另一种方法:

http://robertnyman.com/2010/01/11/css-background-transparency-without-affecting-child-elements-through-rgba-and-filters/

答案 1 :(得分:12)

有两种方法可以做到这一点:一种是将容器的背景颜色设置为透明颜色,rgba(r,g,b,.5) - 但是,这是CSS3,仅在较新的浏览器中支持。

另一种方法是在容器内放置绝对定位的div,不透明度为.5。

<div class="backgroundOpacity">
    My Epic Content
</div>
<br/>
<div class="backgroundDiv">
    <div id="background"> </div>
    My Other Epic Content
</div>
.backgroundOpacity {
 background-color:rgba(0,0,0,.5);
}
.backgroundDiv {
  position:relative;  
}
#background {
 position:absolute;
  top:0;
   left:0;
   width:100%;
   height:100%;
   background-color:#000;
   opacity: .5; 
}

http://jsfiddle.net/thomas4g/vVt8D/1/

答案 2 :(得分:4)

background-color: rgba(0,0,0,0.5);

答案 3 :(得分:2)

您可以像这样设置外部div

background-color: rgba(0, 0, 0, 0.8); opacity: inherit;

答案 4 :(得分:0)

这可以通过一个技巧来完成,它很容易,这是如何:

你想把文字带到透明div之外,然后让另一个div作为位置:相对;