这是有意义的,当孩子试图覆盖(覆盖用较小的值)父的不透明度。但是,如果孩子试图用更大的值覆盖它呢?不应该被允许吗?为什么半透明父体不能有不透明的孩子?任何人都可以分享为什么这样的限制被决定作为CSS设计的一部分的想法?
真的会感激,如果有人可以阐明这一理论原因的一些光。我基本上试图找出为什么 – 不能这部分(不是解决方法;因为那些已经谈到了很多时间)。我相信这是一些很多新手像我想要知道的人。
解决方法
spec将它视为一个alpha蒙版,其中的不透明度只能删除。元素是不透明的,或者具有一定程度的透明度(任何<1):
Opacity can be thought of as a postprocessing operation. Conceptually,after the element (including its descendants) is rendered into an RGBA offscreen image,the opacity setting specifies how to blend the offscreen rendering into the current composite rendering.
和以后:
If the object is a container element,then the effect is as if the contents of the container element were blended against the current background using a mask where the value of each pixel of the mask is
<alphavalue>
至于为什么这样实施,我不认为这是故意的“让我们禁止”的意义。也许这种方法被选择为更简单的计算,只有后来实际需要的东西不同被认可(然后rgba颜色和背景颜色介绍 – 我可能错了这里的时间轴)。