css3 background-size:cover IE8不支持 解决办法

因为IE8浏览器这个坑,不支持css3的background-size:cover这个属性,当时有一个很大的图片需要做页面的背景,要适应不同分辨率的电脑,然后就遇到了这个问题

IE8虽然不支持这个属性,但是有一个filter​这个属性

个人认为是这样解释:微软Alpha图片加载器​

filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='img/bg.jpg',sizingMethod='scale');

src :必选项。字符串(String)。(指定图片的路径。要注意的是这个路径是指加载滤镜的页面相对于图片的路径而不是css文件相对于图片的路径。这跟一般的图片加载有区别。)

sizingMethod :可选项。字符串(String)。设置或检索滤镜作用的对象的图片在对象容器边界内的显示方式。

                 cop :     剪切图片以适应对象尺寸

                 image:  默认值增大或减小对象的尺寸边界以适应图片的尺寸

                 scale :   缩放图片以适应对象的尺寸边界

enabled :可选项。布尔值(Boolean)。设置或检索滤镜是否激活。true | false

                 true:默认值。滤镜激活,false:滤镜被禁止。

上面也有问题,加上这个属性可以把背景图处缩放适应屏幕了,但是出现了两张图片,原来的背景图片没有消失

解决方法:通过css IE8的hack把背景background:none\9 (\9代表IE8以及IE8以下)隐藏了,解决了​ ,但是IE9还是会有两张图片

上面问题解决了,但又遇到一个坑,项目上传到服务器上背景图片没有了......

解决方法:之前是把filter里面的src属性设置到相对图片的路径,现在把src 的路径换成绝对路径就OK了。

另外IE8以及更早的版本不支持opacity属性,也可以使用filter属性替代。例如:filter:Alpha(opacity=50)。

你可能感兴趣的:(浏览器兼容问题,web前端,ie)