兼容opacity的方法

实现图片或背景透明可以使用opacity,如opacity=0.5。但是ie9以下的都不支持,这时候可以使用ie特有的滤镜来实现,只需一句话,filter:alpha(opacity=50);

但是注意,如果是设置一个div的opacity属性,那它里面的元素也都有了透明属性。有的时候我们只想让背景透明,不想让里面的内容透明。

这个时候就考虑rgba颜色。比如

<style type="text/css">.item{background-color:rgba(0,0,0,0.2);}</style>

但是要兼容ie就必须使用滤镜

filter:progid:DXImageTransform.Microsoft.gradient(enabled='true',startColorstr='#33000000', endColorstr='#33000000');zoom:1;

所以可以样式可以写成<style type="text/css">.item{background-color:rgba(0,0,0,0.2);filter:progid:DXImageTransform.Microsoft.gradient(enabled='true',startColorstr='#33000000', endColorstr='#33000000');zoom:1;}</style>

这样问题又出现了,ie9就就会出现双重滤镜,背景越来越不透明了,要去掉ie9中的滤镜就可以针对csshack写了

<!--[if lte IE 8]>
<style>
 .item{filter:progid:DXImageTransform.Microsoft.gradient(enabled='true',startColorstr='#33000000', endColorstr='#33000000');zoom:1;}
</style>
<![endif]-->

问题解决了

 

posted @ 2014-08-13 10:10  jiaojiao085  阅读(336)  评论(0编辑  收藏  举报