为 CSS 中的 MS 过滤器解密 HEX RGBA

Joe*_*ier 1 css internet-explorer hex filter rgba

我正在为一个页面编写样式,我想在某些列表项的背景上使用 rgba 颜色。我使用 CSS background 属性和 rgba(146,138,118,.4) 来定义我的透明背景颜色。

现在,我正尝试通过使用本文中描述的 ms-filter 技术来使用 IE 支持来覆盖我的基础。(请参阅标题“...和所有人的 RGBA。”)

问题显然是 MS 过滤器要求您在 RGBA 和十六进制之间使用某种类型的混合,其中 alpha 透明度值被转换为 00 和 FF 之间的数字。请参阅Microsoft 的此描述页面以供参考。

所以问题是我无法弄清楚到底如何将我的值从 RGBA 正确转换为 hex/rgba 混合方法。任何人都可以向我指出一些很好的参考资料吗?请不要只给我正确的值 - 除了那种颜色之外,这对我没有好处。我需要了解它背后的原理,谢谢。

Mat*_*all 5

将rgbaalpha 转换为渐变过滤器格式非常简单。它是从区间[0, 1]到区间的映射[0, 255],以十六进制表示。要进行转换,只需乘以255并转换为十六进制。例如,不透明度rgba(rr, gg, bb, 0.5)最终为7F(或者80,如果您要四舍五入):

0.5 * 255 = 127.5 (base 10)
127 (base 10) = 7F (base 16)
Run Code Online (Sandbox Code Playgroud)

我假设您不是在问如何在基数 10 和基数 16 之间进行转换。