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