【发布时间】:2014-01-23 06:56:56
【问题描述】:
我偶然发现了渲染两个不透明度 = .5 的重叠元素的问题。元素完全相同并且绝对定位。一个在另一个之上。
常识告诉我们,效果应该为我们提供 100% 不透明度 (0.5+0.5 = 1) 的图像,但事实并非如此。
如果有人愿意解释渲染此类元素的机制,我将不胜感激,因为显然存在一些我没有得到的潜在问题。
HTML:
<div class="test">
<img src="..." alt="" width="200" height="200" class="t"/>
<img src="..." alt="" width="200" height="200" class="t"/>
</div>
<img src="..." alt="" width="200" height="200" class="test"/>
CSS:
.test{
float: left;
position:relative;
width: 200px;
height: 200px;
}
.test .t{
position:absolute;
top:0;
left:0;
opacity: 0.5;
}
jsFiddle
谢谢
【问题讨论】:
-
您不只是将图像添加到图像中。还有白色背景。第一个图像与白色混合。第二个图像与第一个混合的结果混合。
-
不是 0.5+0.5,而是0.5 * 0.5,75% 不透明。使用您的想法,三个元素看起来如何堆叠在一起,不透明度为 0.5? 150% 不透明?好吧,没有。它们加起来是 87.5% 的不透明。
-
@TheSavage,白色背景对元素不透明度的影响为 0。不要混淆亮度和不透明度。
标签: css