相关 如何使用 CSS 为文本或图像提供透明背景? ,但略有不同。
我想知道是否可以更改背景 图像 的 alpha 值,而不仅仅是颜色。显然我可以只保存具有不同 alpha 值的图像,但我希望能够动态调整 alpha。
到目前为止,我得到的最好的是:
<div style="position: relative;">
<div style="position: absolute; left: 0px; right: 0px; top: 0px; bottom: 0px;
background-image: url(...); opacity: 0.5;"></div>
<div style="position: relative; z-index: 1;">
<!-- Rest of content here -->
</div>
</div>
它可以工作,但又笨重又丑陋,并且在更复杂的布局中会把事情搞得一团糟。
原文由 Niet the Dark Absol 发布,翻译遵循 CC BY-SA 4.0 许可协议
如果背景不必重复,您可以使用 sprite 技术(滑动门),将所有具有不同不透明度的图像放在一个(彼此相邻)中,然后只需将它们移动
background-position
。或者,如果您的目标浏览器支持 多种背景(Firefox 3.6+、Safari 1.0+、Chrome 1.3+、Opera 10.5+、Internet Explorer 9+),您可以多次声明相同的部分透明背景图像。这些多个图像的不透明度应该加起来,您定义的背景越多。
这种组合透明胶片的过程称为 Alpha Blending 并计算为(感谢@IainFraser):
αᵣ = α₁ + α₂(1-α₁)
其中α
介于 0 和 1 之间。