参考链接
opacity 和 rgba 区别
两者的后代元素都不会继承对应的属性值
但
opacity会影响其子元素的透明度,而
rgba不会影响其子元素的透明度。
补充
首先子元素会受到父元素的 opacity 属性的影响:
- 设置父元素
opacity: 0.5,子元素不设置opacity,子元素会受到父元素opacity的影响,也会有0.5的透明度。
其次子元素的透明度是基于父元素的透明度计算的:
- 设置父元素
opacity: 0.5,即使设置子元素opacity: 1,子元素的opacity: 1也是在父元素的opacity: 0.5的基础上设置的,因此子元素的opacity还是0.5。
其他测试:
HTML
<div class='box opacity'>opacity<div class='a1'>opacity<div class='b1'>opacity</div></div></div><div class='box opacity'>opacity<div class='a2'>opacity<div class='b2'>opacity</div></div></div>
CSS
.box { display: inline-block; }.opacity { opacity:1; }.a1 { opacity: 1; }.b1 { opacity: .25; }.a2 { opacity: .5; }.b2 { opacity: .5; }
直接设置 0.25 和 0.5 * 0.5 叠加,最后一行的字母透明度看起来是相同的。
(肉眼看可能还是没那么有说服力,故只当作简单的测试验证)

