我知道你能写…

background-color: #ff0000;

... 如果你想要红色的东西。

你可以写…

background-color: rgba(255, 0, 0, 0.5);

... 如果你想要红色半透明的。

有没有简单的十六进制表示部分透明颜色的方法?我想要这样的东西:

background-color: #ff000088; <--- the 88 is the alpha

... 还是……

background-color: #ff0000 50%;

我得到的所有颜色都是十六进制的,而必须将它们全部转换为0-255的十进制刻度,这很烦人。


当前回答

为什么不使用 background - color: # ff0000; 透明度:0.5; 过滤器:α(不透明度= 50);IE */中的/*

如果您为文本或元素指定颜色,这应该容易得多。

其他回答

#rrggbbaa符号在Chrome 62+和所有其他常绿浏览器中完全支持:

background: #56ff0077;

白马王子:

只有ie浏览器允许ARGB格式的4字节十六进制颜色,其中A是Alpha通道。它可以用于渐变过滤器,例如:

filter  : ~"progid:DXImageTransform.Microsoft.Gradient(GradientType=@{dir},startColorstr=@{color1},endColorstr=@{color2})";

其中dir可以是:1(水平)或0(垂直) 颜色字符串可以是十六进制颜色(#FFAAD3)或argb十六进制颜色(#88FFAAD3)。

恐怕不行。你知道的rgba格式是唯一的。

如果你可以使用LESS,有一个渐隐功能。

@my-opaque-color: #a438ab;
@my-semitransparent-color: fade(@my-opaque-color, 50%);

background-color:linear-gradient(to right,@my-opaque-color, @my-semitransparent-color); 

// result: 
background-color: linear-gradient(to right, #a438ab, rgba(164, 56, 171, 0.5));

请看这里http://www.w3.org/TR/css3-color/#rgba-color

这是不可能的,很可能是因为0xFFFFFFFF大于32位整数的最大值