23

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

在更改引导程序的渐变后,.btn我遇到了rgba(). 快速研究解释说,a代表alpha,并且有一大堆积分数学归因于 CatmullSmith。还有些容易发现 alpha 通道用于“alpha compositing”,这主要可以与“opacity”相关联。

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

3 回答 3

38

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

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

在 CSS 中,在 rgba() 获得相同级别的支持之前,rgb() 已经获得了广泛的浏览器支持数年之久。这是您在 CSS 中会发现 rgb() 比 rgba() 更多的原因之一。另一个原因是半透明不是你通常在任何地方使用的东西。

您可能会发现一个 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

于 2014-07-02T18:46:37.810 回答
2

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

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

除此之外没有任何区别,颜色仍然是相同的。

使用这种和其他CSS3颜色样式的问题在于它并不总是受支持。这是我找到的一个链接,它告诉您哪些版本的浏览器支持它。

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

于 2014-07-02T18:50:23.650 回答
0

rgb是标准rgb(red, green, blue)

rgba是标准rgb(red, green, blue + Alpha (aka opacity))

您不会发现任何颜色变化。RGBAcss3颜色属性。

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

CSS:

div {    
  background-color: rgb(200, 54, 54); /*The Fallback*/
  background-color: rgba(200, 54, 54, 0.5) !important; 
}
于 2014-07-02T18:35:14.310 回答