解密 CSS 中 MS 过滤器的 HEX RGBA

发布于 2024-09-25 03:26:53 字数 576 浏览 6 评论 0原文

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

现在我试图通过使用 ms-filter 技术来覆盖 IE 支持,如 这篇文章。 (请参阅标题“...和 ​​RGBA for all。”)

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

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

I'm writing styles for a page where I'd like to use rgba colors on the background of some list items. I've used the CSS background property along with rgba(146,138,118,.4) to define my transparent background color.

Now I'm trying to cover my bases with IE support by using the technique of an ms-filter as described in this article. (see heading "...and RGBA for all.")

The trouble is apparently the MS-filter requires you to use some type of hybrid between RGBA and Hex where the alpha transparency value is translated to a number between 00 and FF. See this description page from Microsoft for reference.

So the trouble is I can't figure out how on earth to properly convert my value from RGBA to that hex/rgba hybrid method. Can anybody point me to some good reference material on this? Please don't just give me the correct value - that does me no good outside of that color. I need to understand the how behind it, thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

深陷 2024-10-02 03:26:53

将 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 进制之间进行转换。

Translating an rgba alpha to the gradient filter format is very simple. It's a mapping from the interval [0, 1] to the interval [0, 255], represented in hex. To do the conversion, then, just multiply by 255 and convert to hex. For example, opacity in rgba(rr, gg, bb, 0.5) ends up as 7F (or 80, if you're rounding up):

0.5 * 255 = 127.5 (base 10)
127 (base 10) = 7F (base 16)

I assume you're not asking about how to convert between base 10 and base 16.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文