【发布时间】:2013-11-08 21:58:06
【问题描述】:
我有一个<div>,我想更改其背景色(而不是其内容)的透明度。远程 API 向我发送这种颜色:
#abcdef
我告诉 jQuery (1.9) 通过.css 应用这个颜色:
$('div').css('background-color', '#abcdef');
结果 div 的 background-color 样式不是 #abcdef,而是相同颜色的 RGB 表示。
background-color: rgb(171, 205, 239);
(只是观察;不是问题的一部分)
项目要求已更改,因此我现在需要将背景的透明度也更改为设定的百分比 (50%)。因此,我想要的background-color 属性是
background-color: rgba(171, 205, 239, 0.5);
但是,我找不到仅使用 jQuery(十六进制颜色代码)设置此背景颜色属性的方法,并且仍然应用 alpha 值。 opacity 会影响 div 的内容以及背景,所以它不是一个选项。
$('div').css('background-color', '#abcdef')
.css('opacity', 0.5); // undesirable opacity changes to div's content
给定字符串#abcdef,如果仅给定一个十六进制颜色字符串,是否可以仅通过计算(例如 hex2dec)将背景不透明度应用于 div?
【问题讨论】:
-
我认为您不能使用十六进制值设置 bg 不透明度。您可以将十六进制拆分为值对并将其转换为十进制,这样您就可以即时创建 rgba 设置,但它不会漂亮。
-
这个
$('div').css('background-color', 'rgba(171, 205, 239, 0.5)')有什么问题? -
@RoryMcCrossan 试过
$('div').css('background-color', '#abcdef77')-- jQuery 没有被愚弄。呵呵。 -
您不能使用十六进制值设置 bg 不透明度,您的选择是使用 rgba 或小 png。 RGBA 是最好的,如果您需要满足 ie7 的需求,那么 CSS3 Pie 将在该部门为您提供帮助
-
你是对的@RecoveringSince2003,你的建议是唯一可行的,如果只有 API 为我提供了那个值。它没有......所以这个问题存在。 @-影响内容不透明度的两个代码。