7

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

4

2 回答 2

13

CSS3原生支持 RGBA :

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

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

幸运的是,您可以为支持它的浏览器指定 RGBA 颜色,并为不支持它的浏览器指定替代颜色。检查此链接以获取出色的操作方法。

这是两个选项:-来自链接-

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 - 在你选择颜色之后,我认为你已经完成了。

希望能帮助到你。

于 2012-07-07T23:54:17.853 回答
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旧浏览器支持的浏览器特定值)。

于 2012-07-15T21:50:07.717 回答