How to keep text opacity 100 when its parent container is having opacity of 50

柔情痞子 提交于 2019-11-28 20:18:06
thirtydot

A simple and compatible solution is to remove all your opacity, and use:

#outer {
    background: url(50%-transparent-white.png);
    background: rgba(255,255,255,0.5)
}
  • Browsers that support rgba will use the second background declaration with rgba.
  • Browsers that do not will ignore the second background declaration and use the .png.

The .png won't work in IE6, but that's unlikely to be a problem. If it is, it can be resolved.


Yet another method is detailed here:

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

There's two ways to do this: One is to just set the background-color of the container to a transparent color,with rgba(r,g,b,.5) - However, this is CSS3 and only supported in newer browsers.

The other way is to drop an absolutely positioned div inside the container, with an opacity of .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/

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

You could set your outer div like this

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

This can be done by a trick and it's is so easy, here is how:

you wanna take the text outside of the transparent div and that's by making another div sat as position: relative;

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!