除了“不透明度”之外,RGB与RGBA之间有什么区别?

时间:2014-07-02 18:31:09

标签: css rgb argb rbga

我已经超越了在CSS中使用标准颜色,通过声明orangeblueaquamarine等等,并且一直在使用rgb()相同颜色分​​别为rgb(255,165,0)rgb(0,0,255)rgb(127,255,212)(感谢ST3中的ColorHighlighter包)。

更改了引导程序.btn的渐变后,我遇到了rgba()。快速研究解释说a代表alpha,并且有一大堆整数数学归结为CatmullSmith。也很容易发现alpha通道用于“alpha合成”,它通常可以作为“不透明度”关联。

  • 除了不透明度之外,两者之间是否存在差异?
  • 为什么使用RGBA不是惯例。(我假设这是因为我 刚刚绊到了这个)
  • 使用rgba()时是否还有其他限制 网络?
  • 是否有快捷方式在颜色快捷方式旁边声明不透明度? (即 color: salmon:.5;
  • 从Web开发人员的角度来看,我是否需要担心 ARGB,RGBA,BGRA字节顺序之间的差异不同 机器INFO
  • 其他重要信息?

3 个答案:

答案 0 :(得分:25)

RGB是一种3通道格式,包含红色,绿色和蓝色的数据。 RGBA是一种4通道格式,包含红色,绿色,蓝色和Alpha的数据。

除了使颜色透明/不透明(或部分透明;半透明)之外,Alpha通道没有用处。

在CSS中,在rgba()获得相同级别的支持之前,rgb()在几年内拥有广泛的浏览器支持。这是你在CSS中找到比rgba()更多的rgb()的一个原因。另一个原因是半透明不是你通常在任何地方使用的东西。

您可能会发现RGB值打包为16位,蓝色和红色为5位,绿色为6位(绿色获得更多位,因为眼睛更清楚地看到绿色阴影)。您可能还会发现RGBA值打包为16位,每种颜色为5位,alpha为1位。使用一位,您只能使颜色完全透明或根本不透明。

现在通常情况下,您会发现RGB和RGBA打包成32位值,每种颜色为8位,alpha为8位(RGB为左侧空白)。

在CSS中,设计人员决定使用红色,绿色和蓝色的值0-255(8位值的范围),但对于Alpha通道,它们使用介于0.0和1.0之间的值。颜色的实际字节格式与Web开发人员无关。

根据我的经验,在CSS中经常使用rgb()和rgba()。十六进制颜色占主导地位,并且比它们早几年了。

HSL实际上是一种更好的颜色处理格式,CSS支持(IE9 +,Firefox,Chrome,Safari和Opera 10 +。)。

http://www.w3schools.com/cssref/css_colors_legal.asp

答案 1 :(得分:2)

RGB 是标准的rgb颜色,你已经明白了这一点。

RGBa 是标准的rgb颜色,但也带有alpha / opacity。

除此之外没有任何差别,颜色仍然编码相同。

使用此和其他 CSS3 颜色样式的问题在于它并不总是受支持。 以下是a link我发现它可以告诉您哪些版本的浏览器支持它。

CSS 中声明 alpha 看起来像 rgba(0,0,0,.3),其中alpha是小数或从 1 0 的整数。 1是不透明的,0是完全透明的。

答案 2 :(得分:1)

rgb是标准的rgb值(红色,绿色,蓝色)

rgba是标准的rgb值(红色,绿色,蓝色+ Alpha(又名不透明度))

您将找不到任何颜色变化。 RGBA是css3颜色属性。

由于较旧的浏览器支持可能受限,您可能希望使用后备颜色:

CSS:

div {
    background-color: rgb(200, 54, 54); /* The Fallback */
    background-color: rgba(200, 54, 54, 0.5); 
}