2012-07-07 507 views
7

我的应用程序中有一个颜色选择器,用户可以使用颜色选取应用程序输出的某些对象的颜色。颜色选择器正在输出以RGBA格式选择的颜色。但是,我需要HTML颜色代码。我需要能够在不知道颜色的情况下将RGBA转换为HTML,并稍后将其用作字符串。我会如何去做这件事?将RGBA颜色转换为HTML颜色代码

+0

HTML不支持半透明颜色值 - 除非alpha被最大化,或者您不关心alpha,否则将无法获得与RGBA颜色等效的HTML颜色代码。您是否提到CSS颜色值,如标签和您接受的答案所示? – BoltClock 2012-07-15 18:10:10

+0

@BoltClock'canvas'上下文有一个'globalAlpha'属性,您可以使用它来设置画布对象的透明度。 – 2012-07-15 18:41:21

回答

13

RGBA是原生支持CSS3

div { 
    background: rgba(200, 54, 54, 0.5); 
} 

火狐,Safari,Chrome浏览器,IE9和Opera浏览器都支持RGBA。较老的IE不支持它。

幸运的是,您可以为支持浏览器的浏览器指定RGBA颜色,并为浏览器指定不支持的颜色。检查这link一个伟大的howto。

这是两个选项: - 从链接 -

1. BACK纯色掉落:允许浏览器回落到混浊时不可使用纯色。该

h1 { 
    color: rgb(127, 127, 127); 
    color: rgba(0, 0, 0, 0.5); //for modern browsers only 
} 

2.回落到PNG:在你使用的背景颜色的透明度,其中的情况下(尽管没有边界或文字)有可能回落到使用带alpha的PNG渠道获得相同的效果。这比使用CSS更不灵活,因为您需要为每个透明度级别创建一个新的PNG,但它可能是一个有用的解决方案。

h1 { 
    background: transparent url(imageName.png); 
    background: rgba(0, 0, 0, 0.5) none; //for modern browsers only 
} 

我想说的是,你不需要HTML颜色代码,你只需要CSS属性rgba添加 - JavaScript或jQuery的 - 你拿起颜色后,我想你是完成。

希望它有帮助。

+0

我会假设对此的答案是肯定的,但是内联样式支持rgba正确吗? – Nathan 2012-07-08 00:22:03

+0

@Natha,你说得对,答案是肯定的。这只是一种指定颜色的不同方式。 ** 1。** HEX值 - 像'“#ff0000”' ** 2。** RGBA值 - 像'“rgb(255,0,0,0.5)”' ** 3。**一个颜色名称 - 像''红色'' – 2012-07-08 00:25:38

+1

Internet Explorer支持从版本9开始的RGBA。 – BoltClock 2012-07-15 18:05:05

2

如果你(这你的问题的文字字面上询问)寻找一个实际转换从RGB(一)在JavaScript诅咒:

red = green = blue = 255; 
hex = '#' + 
    ("0" + (red).toString(16)).slice(-2) + 
    ("0" + (green).toString(16)).slice(-2) + 
    ("0" + (blue).toString(16)).slice(-2); 

当然还有没有Alpha等效的,但您可以设置不透明度(和/或浏览器特定的-opacity值以适应较旧的浏览器支持)。