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