如果 CSS 使用预乘 alpha,则意味着例如rgb(255, 0, 0)50% 的不透明度必须为rgba(127.5, 0, 0, 0.5). 并且rgba(255, 0, 0, 0.5)会无效。
最新版本的规范提到了rgb和rgba:
前三个参数分别指定颜色的红色、绿色和蓝色通道。0% 表示 sRGB 色域中该颜色通道的最小值,100% 表示最大值。A 相当于 a ,但范围不同:0 再次表示颜色通道的最小值,但 255 表示最大值。
这定义了非预乘值。如果值是或可能是预乘的,则必须根据 alpha 值说明有关最大值的信息。
k2snowman69链接到的CSS3 规范并不那么具体,但同样没有提及任何有关取决于 alpha 值的 RGB 值,并且包含如果预乘则无效的示例。
我认为 API 永远不会使用预乘 alpha,除非这些 API 预计能够处理已经以某种方式部分处理的图像数据,例如在图像处理库中。预乘 Alpha 通道是为了简化颜色混合计算。这并不是真正能帮助最终用户的东西。