为什么不能使用更大的值覆盖父项的不透明度?

我们知道,子元素不能从现在开始覆盖父元素的opacity属性。 父项的opacity属性始终生效。

这是有意义的,当孩子试图underride(覆盖较小的价值)父母的不透明度。 但是,如果孩子试图用更大的价值来覆盖它呢? 这不应该被允许吗? 为什么半透明的父母不能拥有一个不透明的孩子? 任何人都可以分享为什么这样的限制是CSSdevise的一部分决定的想法?

真的很感激,如果有人能够阐明这个理论的理由。 我基本上试图找出为什么 – 不能成为这个的一部分(不是解决方法;因为已经被讨论了很多次)。 我相信这是很多新手,像我这样的人会想知道的。

我从来没有把这看作是“压倒一切”或“压倒一切”。 这是一个相对不透明的问题。 如果父母的不透明度为0.5 ,则孩子也拥有(与父母的堆叠情况有关)。 孩子可以有自己的01之间的不透明度值,但是它总是相对于父母的不透明度。 因此,如果孩子也有opacity: 0.5组,那么一些不透明度为1的父母的兄弟姐妹的不透明度将是0.25

该规范将其视为一个阿尔法面具,其中不透明只能被删除。 一个元素是不透明的,或者具有某种程度的透明度(任何东西< 1 ):

不透明可以被认为是后处理操作。 从概念上讲,在元素(包括其后代)被渲染成RGBA离屏图像之后,不透明度设置指定如何将离屏渲染混合到当前合成渲染中。

后来:

如果对象是一个容器元素,那么效果就好像容器元素的内容与当前背景混合使用掩码,其中每个像素的值是<alphavalue>

至于为什么这样执行,我不认为这是“不准”的意思。 也许这种方法的select是为了更简单的计算,只有到了以后,才会认识到不同的东西的实际需求(然后引入了rgba colorbackground-color – 我可能在这里的时间表错了)。