嗯,关于IE8不兼容rgba()函数的这个问题,
background:rgba(236,236,236,0.8);
这样的一句代码在IE9及以上都是支持的,那么说一下IE8要怎么做?
background:rgba(236,236,236,0.8);
filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#C8ececec,endColorstr=#C8ececec);
第二句话的意思就是当上一行的透明度不起作用的时候执行。这句话的意思本来是用来做渐变的。但是这个地方不需要渐变。所以两个颜色都设置成了相同的颜色。
那么这个#C8ececec是怎么来的呢?
1.C8表示的是这个背景的透明度0.8。
如上图去查找即可。
2.#ececec为rgb(236,236,236)的16进制值
ok,加进去这样一条样式就可以了。
但是还有一个问题,当我把这段代码加进去的时候,IE9的透明度又出了问题,当然在这期间,我改动代码IE10 一直是正常的,所以验证了一句话,IE9部分兼容,IE10基本是完全兼容的。
最后解决一下这个问题,
<!--[if IE 8]>
.form{
filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#C8ececec,endColorstr=#C8ececec);
}
<![endif]-->
判断一下,如果浏览器为IE8,那就加上这句样式,否则,忽略掉这句就好了。