颜色的十六进制透明度

新手上路,请多包涵

我正在为我的应用小部件实现小部件透明度选项,尽管我在正确获取十六进制颜色值时遇到了一些麻烦。作为十六进制颜色透明度的新手,我搜索了一下,虽然我找不到我的问题的具体答案。

我想通过十六进制颜色设置透明度,所以假设我的十六进制颜色 ID“#33b5e5”,我希望它是 50% 透明的。然后我将使用“#8033b5e5”,因为 80 是 50%。

我在这里找到了一个有用的图表: http ://www.dtp-aus.com/hexadeci.htm。有了这些数据,我设法想出了这个:

 0% = #00
10% = #16
20% = #32
30% = #48
40% = #64
50% = #80
60% = #96
70% = #112
80% = #128
90% = #144

现在,当我的十六进制数超过 100 时,问题开始出现。十六进制颜色代码只能是 8 个符号,对吗?例如 #11233b5e5 (80%) 崩溃。

我该怎么做才能让我也使用更高的数字?

原文由 SweSnow 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 670
2 个回答

这是不透明度的十六进制值的正确百分比表。例如,对于 50% 白色,您将使用 #80FFFFFF。要考虑透明度,请翻转百分比的顺序(更不透明 = 更不透明)。

%十六进制100%法郎95% F2 90% E6 85% D9 80%抄送75%高炉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

来源问题

原文由 Ben Clayton 发布,翻译遵循 CC BY-SA 4.0 许可协议

我意识到这是一个老问题,但我在做类似的事情时遇到了它。

使用 SASS,您有一种非常优雅的方式将 RGBA 转换为十六进制 ARGB: ie-hex-str 。我在这里的mixin中使用了它。

 @mixin ie8-rgba ($r, $g, $b, $a){
    $rgba: rgba($r, $g, $b, $a);
    $ie8-rgba: ie-hex-str($rgba);
    .lt-ie9 &{
      background-color: transparent;
      filter:progid:DXImageTransform.Microsoft.gradient(GradientType=0,startColorstr='#{$ie8-rgba}', endColorstr='#{$ie8-rgba}');
  }
}

.transparent{
    @include ie8-rgba(88,153,131,.8);
    background-color: rgba(88,153,131,.8);
}

输出:

 .transparent {
  background-color: rgba(88, 153, 131, 0.8);
}
.lt-ie9 .transparent {
  background-color: transparent;
  filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0,startColorstr='#CC589983', endColorstr='#CC589983');
  zoom: 1;
}

原文由 fontophilic 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题