IE8不支持rgba(),但是支持滤镜,可以达到与rgba()相同的效果
需要注意的是:IE9支持滤镜,同时也支持rgba(),如果同时使用,会看到双重效果
IE10及其以上版本不支持滤镜,支持rgba()。
1.写法:
rgba:
.class{
background: rgba(0,0,0,0.75);
}
滤镜(filter):
.class{
filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#BF000000,endColorstr=#BF000000);
}
上面两种写法的效果相同。
2.IE9既支持滤镜,也支持rgba(),如果把滤镜写在css中,在IE9下会看到双重效果。
IE支持expression行内表达式,可以在html中只针对IE8设置滤镜效果。
代码如下:
<!--[if IE 8]>
<style>
.class{-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorstr=#BF000000,endColorstr=#BF000000)";}
</style>
<![endif]-->
写在<head></head>中
3.滤镜解释:
startColorstr和endColorstr的值“#”后面由两部分组成:前两位是IEfilter值(透明度),后六位是颜色值,都是十六进制表示法;
IEfilter值(透明度)的计算方法:rgba的透明度 * 255,取整,再由十进制转化为十六进制即可