我在HTML中有两个嵌套项目,我想给出一个不透明度为0.8的不透明度和一个不透明度为1的内容。
我想我明白为什么它不起作用,但是,我怎么能模仿这种效果呢?
这是一个显示问题的简化HTML,我希望绿色方块是实心的。
<div style='background-color:red;
width: 500px;
height: 500px;
border: 1px solid black;
position: absolute;
top:0;
left:0;
opacity:0.8'>
<div style='width:150px; height:150px; background-color:green; opacity:1'>
Some content
</div>
</div>
答案 0 :(得分:9)
如果使用rgba
CSS属性而不是opacity属性,则可以实现此目的:
<div style='background-color:rgba(0, 255, 0, 0.8) ;width: 500px; height: 500px; border: 1px solid black; position: absolute; top: 0; left: 0'>
<div style='position: relative; width: 150px; height: 150px; background-color: rgba(0, 0, 255, 1);'>aaaaaaaaa<br>aaaaaaaaa<br></div>
</div>
答案 1 :(得分:1)
你总是可以接受渐进增强,并在背景颜色上使用rgba
// this will only affect the div it's applied to and not it's contents
background-color: rgba(0,0,0,0.8)
答案 2 :(得分:0)
使用CSS2
我为你准备了一个演示了一个关键概念的演示:
http://jsfiddle.net/audetwebdesign/pN69F/
您可以首先添加一个wrapper
div来定位两个封闭的div outer
和inner
。 outer
位于inner
之前,这意味着inner
将位于outer
之上(除非您调整z-index值)。
您可以将不透明度设置为outer
div,这样可以使任何背景文字或图像部分可见。将inner
div的不透明度设置为1.0以获得完全饱和的着色。
我认为大多数浏览器都支持不透明度,但请查看http://www.quirksmode.org/css/opacity.html以获取特定于供应商的CSS属性以处理IE怪癖。