多语言展示
当前在线:152今日阅读:75今日分享:44

一个小方法解决rgba()不兼容IE8的问题

在web前端开发中,各位小主可能多多少少都遇到过兼容性问题,本期介绍css中的背景色rgba()属性对IE8的兼容方法。
工具/原料
1

电脑

2

代码编辑器:HBuilderX、sublime等代码编辑器

方法/步骤
1

要在一个页面中设置一个半透明的白色div。这个貌似不是难题,只需要给这个div设置如下的属性即可:background: rgba(255,255,255,0.1);但是要兼容到IE8。这个就有点尴尬了。因为IE8不支持rgba()函数。下面我们总结一下rgba()函数的含义

2

rgba的含义,r代表red,g代表green,b代表blue,红绿蓝是三原色。所有颜色都可以由这三种颜色拼合而成。a代表透明度。比如rgba(255,255,255,0.1)就是透明度为0.1的白色。在现代浏览器中是支持rgba的。但是在IE8等古董级浏览器中是不支持的rgba()函数的,IE8只能勉强支持rgb()函数(即去掉了透明度,只能表示颜色)。

3

因此IE8中设置半透明就要费点脑子了。这里可以使用IE的filter来解决这个问题,css代码如下:background: rgba(255,255,255,0.1); filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#19ffffff,endColorstr=#19ffffff);这里要解释一下第二句话的意思,就是当上一行的透明度不起作用的时候执行。这句话的意思本来是用来做渐变的。但是这个地方不需要渐变。所以两个颜色都设置成了相同的颜色。

4

大家注意,这个颜色“#19ffffff”是由两部分组成的。第一部是#号后面的19 。是rgba透明度0.1的IE-filter值。从0.1到0.9每个数字对应一个IE-filter值。对应关系如图:第二部分是19后面的六位 。这个是六进制的颜色值。要跟rgb()函数中的取值相同。比如rgb(255,255,255)对应#ffffff;都是白色。到这里,rgba()函数的用法就可以兼容IE8了。

注意事项

代码书写请记得区分标点符号的中英文以及大小写

推荐信息