<!doctype>
<html>
<head>
<style>
div {
background:rgba(0,255,255,0.3);
}
#div1 {
width:300px;
height:300px;
}
#div2 {
width:200px;
height:200px;
}
</style>
</head>
<body>
<div id="div1"><div id="div2"></div></div><br/>
</body>
div2的实际计算透明度是多少?我很困惑。它是一个非0.3+0.3或0.3+0.3*0.3的未知数
发布于 2015-06-24 04:15:49
alpha通道的总和可以计算为:
alpha_top + alpha_bottom * (1 - alpha_top) =
0.3 + 0.3 * (1 - 0.3) =
0.3 + 0.3 * 0.7 =
0.3 + 0.21 =
0.51
有关详细说明,请参阅Alpha Compositing @ wikipedia,其中列出的公式如下:
或
这本质上是相同的公式used by Bogdan Kuštan,它也可以在this answer by bwoebi中找到。
发布于 2015-06-24 03:07:17
因为你已经在div{}中应用了不透明度,所以这将是#div1{}的.3和#div2{}的.3 * .3 = .09,因为#div1有不透明度值.3,#div2也使用不透明度,但当前持有.3,所以它将被乘以子对象。
发布于 2015-06-24 03:58:40
它的
(0.3 + 0.3) - (0.3 * 0.3) = 0.51
首先,您需要添加重叠的透明度值,并减去它们的乘法。为什么?我不知道。我不知道我是怎么知道的,它只是从PhotoShop到CSS的字母间距中的一个,你需要从1000除以PS值,然后你得到ems的值。抱歉,我离题了。
https://stackoverflow.com/questions/31011297
复制相似问题