兼容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]-->

问题解决了

人生短短几十年,要在有限的生命里多做店有意义的事情。莫要让自己迎合别人的眼光活着。随心而为,听从心的声音。讨好自己,悠哉悠哉!
原文地址:https://www.cnblogs.com/jiaojiaome/p/3909337.html