记录一次关于css颜色 十六进制八位数色值的问题

603 阅读1分钟

大家好,又是我本菜鸡在日常修复问题的时候,与ui讨论如何前后端使用同一套icon,只需要改变色值,就能实现一套icon的主题。这里还是贴出能实现的办法,具体的就不说明了。

IXIQD)_UU@2LNH%MU(}O85Y.png

  1. iconfont、svg 字体图标 这样一来只需要根据返回的色值即可改变颜色(推荐)
  2. mix-blend-mode 颜色叠加,这个有点复杂,但是兼容性不咋地,也不考虑了
  3. 就是准备好所有图标,然后调用呗~

那么问题就来了,后端传回的是 #ffffff 这样的颜色表达!那咋办呢?首先,我们知道颜色表达一般都是有:

  1. 英文单词(red,blue)
  2. 十六进制值(#ff0000)
  3. RGB(255,255,255)
  4. RGBA(255,255,255,1) 最后一位是alpha 透明度
  5. HSL
  6. HSLA (和上面差不多)

好了,为了实现色值透明度的问题,首先可以通过以下的方式来达到效果:

  1. 通过js转换成我们需要的RGB或者HSL模式。(推荐!兼容性好)
  2. 直接用上面十六进制八位数的色值来表达(俺使用的)

这里使用的是第二种办法,但是兼容性是不是不太好=. = ,不知道有没有大佬能解惑一二,十六进制八位数就是在原来基础上的六位数后面两位是 alpha透明通道,下面附上对应的转换值:

image.png

2D3E8A2344F856F2ED03D312DCB5F8E4.jpg

综上所述,在浏览器即可使用色值的透明度,但是会有兼容性问题~