【问题标题】:Use HEX or RGBA使用 HEX 或 RGBA
【发布时间】:2012-09-23 14:30:21
【问题描述】:

我有一个简单的问题:如果我不打算在 RGBA 上使用 Alpha,对于某些颜色,我应该在这些颜色上使用 HEX 吗? HEX 有什么 RGBA 没有的吗?比如浏览器兼容性?还是一直使用 RGBA 就可以了?我觉得它更好,因为如果我想使用 Alpha,我可以。 提前致谢。

【问题讨论】:

    标签: css colors hex rgba


    【解决方案1】:

    两者都应该与任何符合标准的浏览器兼容。

    编辑:IE 中可能存在一些错误行为(惊喜!):http://css-tricks.com/ie-background-rgb-bug/

    【讨论】:

    • 是的,真是个惊喜!好吧,当不需要 Alpha 时,我会使用 HEX!谢谢大家的回答!
    【解决方案2】:

    当使用 RGBA 时,我相信正确的语法 来使用 R、G、B 值。由此得名。我没有尝试使用 Hex,这可能会导致意外行为。

    在浏览器兼容性方面,Hex 和 RGB 几乎相同/相同。

    【讨论】:

      【解决方案3】:

      从浏览器兼容性的角度来看,任何现代浏览器几乎没有真正的差异。

      如果可以,我会选择 HEX。更短的一个字符串,因此更容易复制到第三方程序(例如 Photoshop 等),而且您没有 IE bug mentioned by Erty

      我倾向于只在需要 alpha 的地方使用 RGBA,在所有其他元素上我使用 HEX。

      【讨论】:

        【解决方案4】:

        您实际上(几乎)可以一直使用十六进制。

        即使您需要 alpha,也有一种方法可以将 RGBA 值转换为等效的 Hex 值,只要背景颜色(在具有 rgba 的元素下)是单一纯色。

        这个转换的算法是here

        Source => Target = (BGColor + Source) =
        Target.R = ((1 - Source.A) * BGColor.R) + (Source.A * Source.R)
        Target.G = ((1 - Source.A) * BGColor.G) + (Source.A * Source.G)
        Target.B = ((1 - Source.A) * BGColor.B) + (Source.A * Source.B)
        

        (其实我已经用过几次了,效果很好。

        正如前面的答案中提到的,这里的好处是预期的 RBGA 颜色看起来应该在 ie8 及以下。

        【讨论】:

          猜你喜欢
          • 2011-10-04
          • 2014-03-01
          • 2014-01-13
          • 2012-03-05
          • 1970-01-01
          • 1970-01-01
          • 2011-10-04
          • 2013-12-31
          相关资源
          最近更新 更多