CSS设置父元素透明度时,如何不让子元素继承

需求:
在这里插入图片描述

获取16进制颜色之后转换成rgba颜色,然后设置rgba参数的第四个参数,透明度,子元素则不会继承


    changeBgc(color) {
    //log(color) //  #FF0000 
    let temColor = this.fromHex(color);
        return {
          "background-color": `rgba(${temColor.r},${temColor.g},${temColor.b} , 0.3)`,
          height: "100%",
        }
    },
    fromHex(color) {
      var t = {},
        bits = color.length == 4 ? 4 : 8, //如果是shorthand, #fff, 那么bits为4位, 每一位代表的个属性, 其它的为8位 每两位代表一个属性 #ffffff00
        mask = (1 << bits) - 1; //表示字节占位符, 向左移4位或8位,var a = (1 << 4 ) - 1 -> 10000 - 1,  a.toString(2); // 1111,或者 8位的 1111 1111
      color = Number("0x" + color.substr(1)); //#ff0000 转变为16进制0xff0000;
      if (isNaN(color)) {
        return null; // Color
      }
      ["b", "g", "r"].forEach(function (x) {
        var c = color & mask;
        color >>= bits;
        t[x] = bits == 4 ? 17 * c : c; // 0xfff , 一个f应该代表 255, 应该当[0-255],按15等份划分,每一等份间隔 17。 所以获得的值需要乘以17, 才能表示rgb中255的值
      });
      t.a = 1;
      return t; // Color
    },

fromHex方法转自 https://blog.csdn.net/cexo425/article/details/40151545

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值