将RGBA颜色转换为HTML颜色代码

时间:2012-07-07 23:50:53

标签: html css css3 colors rgba

我的应用程序中有一个颜色选择器,用户可以使用它来选择应用程序输出的某些对象的颜色。颜色选择器输出以RGBA格式选择的颜色。但是,我需要HTML颜色代码。我需要能够在不知道颜色的情况下将RGBA转换为HTML,并在以后将其用作字符串。我该怎么做呢?

2 个答案:

答案 0 :(得分:13)

CSS3本身支持RGBA:

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

Firefox,Safari,Chrome,IE9和Opera浏览器都支持RGBA。较旧的IE不支持它。

幸运的是,您可以为支持它的浏览器指定RGBA颜色,为不支持它的浏览器指定替代颜色。请查看此link以获取精彩的指南。

以下是两个选项: - 来自链接 -

<强> 1。退回到固定颜色:当不透明度不可用时,允许浏览器回退使用纯色。在

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 - 在你拿起颜色后我认为你是完成。

希望它有所帮助。

答案 1 :(得分:2)

如果您正在寻找从rgb(a)到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值)。