众所周知,子元素现在不能覆盖opacity
其父元素的属性.opacity
父项的属性始终生效.
当孩子试图改写(用较小的值覆盖)父亲的不透明度时,这是有意义的.但是,如果孩子试图用更大的价值覆盖它呢?不应该被允许吗?为什么半透明的父母不能有一个不透明的孩子?任何人都可以分享为什么这样的限制被确定为CSS设计的一部分的想法?
如果有人能够阐明理论上的原因,我将非常感激.我基本上试图找出原因 - 不能解决这个问题(不是解决方法;因为已经讨论了很多次).我相信这是很多像我这样的新手想知道的东西.
bfa*_*tto 43
我从未将其视为"压倒一切"或"压倒一切".这是相对不透明的问题.如果父级具有不透明度0.5
,则子级也具有该不透明度(与父级的堆叠上下文相关).孩子可以在0
和之间拥有自己的不透明度值1
,但它总是相对于父级的不透明度.因此,如果孩子也opacity: 0.5
设置了,那么0.25
父母的一些兄弟姐妹的不透明度就会变得不透明1
.
该规范将其视为一个alpha掩模,其中不透明度只能被移除.元素是不透明的,或具有一定程度的透明度(任何东西< 1
):
不透明度可以被认为是后处理操作.从概念上讲,在将元素(包括其后代)渲染为RGBA屏幕外图像之后,不透明度设置指定如何将屏幕外渲染混合到当前复合渲染中.
后来:
如果对象是容器元素,则效果就好像容器元素的内容使用掩码与当前背景混合,其中掩码的每个像素的值是
<alphavalue>
至于为什么以这种方式实施,我认为这不是故意的"让我们禁止那样".也许选择这种方法进行更加简单计算,只是后来的东西不同的实际需要被认可(然后rgba
color
和background-color
介绍-我可能是错的时间表这里).