关于ie8下的opacity问题

正常情况下,在ie8下设置opacity是无效的,ie8下的兼容设置是:

opacity:.5; filter:alpha(opacity=50);

一般情况下是没有问题的,像jpg,gif之类的,但是当图片是png格式且背景透明,边界是不均匀的半透明图片(比如三角形)时,filter设置会使图片出现杂边,(像正方形这种边界整齐的图片不会出现这个问题)如图:

所以比较这两张图片的边界差异:

从网上搜索一些解决方法尝试效果:

filter:progid:DXImageTransform.Microsoft.AlphaImageLoader (src="******.png", enabled=true, sizingMethod=scale);  这种方法可以去除杂边,但也会使opacity失效,想要设置图片透明过度是无效的。相当于没有设置opacity,总结来说相当于是无效的,因为ie8本身是支持png24的图片显示的。

filter:progid:DXImageTransform.Microsoft.Alpha(opacity=50);同filter:alpha(opacity=50);效果一样,杂边依然存在。

-ms-filter:progid:DXImageTransform.Microsoft.Alpha(opacity=50);  这种设置貌似是无效的。

所以个人认为,ie8下仅用css无法设置透明背景图片的opacity过度效果,可以通过visibility或display来做简单的隐藏显示效果。

通过js配合可能能实现吧,后续考虑一下。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容