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

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

问题显然是 MS 过滤器要求您使用 RGBA 和 Hex 之间的某种混合类型,其中 alpha 透明度值被转换为 00 和 FF 之间的数字。看 这个描述页面 来自微软,供参考。

所以问题是我不知道如何正确地将我的值从 RGBA 转换为十六进制/RGBA 混合方法。有人能给我一些关于这方面的好的参考资料吗?请不要只给我正确的值——除了那种颜色之外,这对我没有任何好处。我需要了解其背后的原理,谢谢。

有帮助吗?

解决方案

翻译一个 rgba alpha 到梯度过滤器的格式非常简单。这是区间的映射 [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)

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top