187

表中的颜色均不透明。我猜的值A设置为FF

透明度的代码是什么?

例如这个颜色 FFF0F8FF (AliceBlue),到一个透明的代码,比如??F0F8FF

4

8 回答 8

552

这是 % 到十六进制值的表:

示例:对于 85% 白色,您将使用#D9FFFFFF. 这里 85% = "D9" & 白色 = "FFFFFF"


100% — FF
95% — F2
90% — E6

85% — D9

80% — CC
75% — BF
70% — B3
65% — A6
60% — 99
55% — 8C
50% — 80
45% — 73
40% — 66
35% — 59
30% — 4D
25% — 40
20% — 33
15% — 26
10% — 1A
5% — 0D
0% — 00

它是如何计算的?

FF 是以十六进制模式写入的数字。该数字以十进制表示 255。例如,如果要计算 42%,则需要找到数字 255 的 42% 并将该数字转换为十六进制。255 * 0.42 ~= 107 107 到十六进制是“6B –maleta

于 2015-02-12T15:29:31.850 回答
228

透明度由 Alpha 通道 ( AAin #AARRGGBB) 控制。最大值(255 dec,FF hex)表示完全不透明。最小值(0 dec,00 hex)表示完全透明。中间的值是半透明的,即颜色与背景颜色混合。

要获得完全透明的颜色,请将 alpha 设置为零。RR,GG并且BB在这种情况下是不相关的,因为没有颜色是可见的。这意味着(“透明白色”)与(“透明 AliceBlue”)#00FFFFFF颜色相同。为简单起见,如果颜色无关紧要,#00F0F8FF请选择黑色 ( #00000000) 或白色 ( )。#00FFFFFF

在您链接到的表中,您会发现Transparent定义为#00FFFFFF.

于 2014-04-21T16:21:57.693 回答
10

添加到其他答案,并且什么也不做@Maleta 在 https://stackoverflow.com/a/28481374/1626594 的评论中解释的内容,先做alpha * 255 然后四舍五入到 hex。这是一个快速转换器http://jsfiddle.net/8ajxdLap/4/

function rgb2hex(rgb) {
  var rgbm = rgb.match(/^rgba?[\s+]?\([\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?,[\s+]?((?:[0-9]*[.])?[0-9]+)[\s+]?\)/i);
  if (rgbm && rgbm.length === 5) {
    return "#" +
      ('0' + Math.round(parseFloat(rgbm[4], 10) * 255).toString(16).toUpperCase()).slice(-2) +
      ("0" + parseInt(rgbm[1], 10).toString(16).toUpperCase()).slice(-2) +
      ("0" + parseInt(rgbm[2], 10).toString(16).toUpperCase()).slice(-2) +
      ("0" + parseInt(rgbm[3], 10).toString(16).toUpperCase()).slice(-2);
  } else {
    var rgbm = rgb.match(/^rgba?[\s+]?\([\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?/i);
    if (rgbm && rgbm.length === 4) {
      return "#" +
        ("0" + parseInt(rgbm[1], 10).toString(16).toUpperCase()).slice(-2) +
        ("0" + parseInt(rgbm[2], 10).toString(16).toUpperCase()).slice(-2) +
        ("0" + parseInt(rgbm[3], 10).toString(16).toUpperCase()).slice(-2);
    } else {
      return "cant parse that";
    }
  }
}

$('button').click(function() {
  var hex = rgb2hex($('#in_tb').val());
  $('#in_tb_result').html(hex);
});
body {
  padding: 20px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
Convert RGB/RGBA to hex #RRGGBB/#AARRGGBB:<br>
<br>
<input id="in_tb" type="text" value="rgba(200, 90, 34, 0.75)"> <button>Convert</button><br>
<br> Result: <span id="in_tb_result"></span>

于 2017-05-18T02:43:29.050 回答
4

只需使用这个:

机器人:背景=“#00FFFFFF”

它会做你的工作。

于 2017-06-12T07:48:56.277 回答
4

意识到

HTML/CSS(浏览器代码)中,格式是#RRGGBBAAalpha 通道作为最后两个十六进制数字。

于 2020-10-22T19:40:54.870 回答
2

如果您有十六进制值,并且您只是想知道 alpha 的值是多少,则此代码段可能会有所帮助:

const alphaToHex = (alpha => {
  if (alpha > 1 || alpha < 0 || isNaN(alpha)) {
    throw new Error('The argument must be a number between 0 and 1');
  }
  return Math.ceil(255 * alpha).toString(16).toUpperCase();
})

console.log(alphaToHex(0.45));

于 2020-05-15T13:02:38.213 回答
1

刚刚遇到这个,透明度的短代码就是#00000000。

于 2020-11-04T15:17:44.527 回答
1

标准十六进制颜色代码有六个字符,例如#000000 - 黑色,超过六个字符的十六进制颜色代码(可能是 8 个字符,例如 #82bc00 - 绿色)超过了标准数量,因此最后两个字符定义了透明度级别。因此,如果您需要获得绝对透明度,您可以将 00 添加到任何十六进制颜色,但为了统一,您可以使用 #00000000

.green{
  background: #82bc00      /*actual green*/
}
.subgreen{
  background: #82bc0070    /*green with little transparency*/
}
.greenparency{
  background: #82bc0040    /*green with much transparency*/
}
.transparency{
  background: #82bc0000    /*full transparency over green*/
}
<div class="green"> green background color </div>
<div class="subgreen"> green background color </div>
<div class="greenparency"> green background color </div>
<div class="transparency"> green background color </div>

于 2021-08-15T10:54:50.337 回答