解决老版本IE不兼容rgba的问题
我们一般写一个半透明的 div ,只需要给这个 div 设置如下的属性即可:
background: rgba(255,255,255,0.5);但是如果遇上 IE8 就有点蛋疼了。因为 IE8 不支持 rgba( ) 。
rgba 的含义,r 代表 red ,g 代表 green ,b 代表 blue ,红绿蓝是三原色。所有颜色都可以由这三种颜色拼合而成。a 代表透明度。
比如 rgba(255,255,255,0.5) 就是透明度为 0.5 的白色。
如果做到兼容 IE8 ,要用到 IE 的 filter 。
background: rgba(255,255,255,0.5);
filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#7FFFFFFF,endColorstr=#7FFFFFFF);第二行的意思是当上一行的透明度不起作用的时候执行。
其本来是用来做渐变的,但是这个地方不需要渐变,所以两个参数设置成了相同的颜色。
注意:这个颜色“#7FFFFFFF”由两部分组成。
第一部是 # 号后面的 7F , 是 rgba 透明度 0.5的 IE filter 值。
从0.1到0.9每个数字对应一个 IE filter 值。对应关系如下:
| rgba 透明值 | IEfilter值 |
|---|---|
| 0.1 | 19 |
| 0.2 | 33 |
| 0.3 | 4C |
| 0.4 | 66 |
| 0.5 | 7F |
| 0.6 | 99 |
| 0.7 | B2 |
| 0.8 | C8 |
| 0.9 | E5 |
直接取整计算的,没有进位直接舍去
alpha*255再转换成16进制即可
第二部分是 7F 后面的六位 。这个是六进制的颜色值,要跟 rgb 中的取值相同。比如 rgb(255,255,255) 对应 #FFFFFF ;都是白色。
现在 半透明的 div 就可以兼容IE8了。
本文内容仅供个人学习/研究/参考使用,不构成任何决策建议或专业指导。分享/转载时请标明原文来源,同时请勿将内容用于商业售卖、虚假宣传等非学习用途哦~感谢您的理解与支持!