2

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

4

4 回答 4

1

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

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

于 2012-10-02T17:58:35.463 回答
0

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

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

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

于 2012-10-02T18:07:24.863 回答
0

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

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

于 2012-10-02T18:00:08.860 回答
0

你实际上可以(几乎)总是使用十六进制。

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

这种转换的算法在这里

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 及以下。

于 2012-10-02T19:10:47.037 回答