CSS背景图片自适应、全屏、填充、拉伸

方法一、

js控制:

<div id="formbackground" style="position:absolute; width:100%; height:100%; z-index:-1">  
 <img src="pictures/background.jpg" height="100%" width="100%"/>  
</div>
  <div id="formbackground" style="position:absolute; z-index:-1;"><img src="10.jpg" height="100%" width="100%"/></div>
<script type="text/javascript">
$(function(){
    $('#formbackground').height($(window).height());
    $('#formbackground').width($(window).width());
});

</script>

方法二、

全浏览器兼容:

bg{  
background:url(http://wyz.67ge.com/wp-content/uploads/qzlogo.jpg);  
filter:"progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod='scale')";  
-moz-background-size:100% 100%;  
    background-size:100% 100%;  
}

总结:

做响应式布局的时候,如果有背景图,我们当然希望他能够全屏100%显示,这样显得页面非常的爆满,不过这又出现了一个问题,图片的尺寸多大合适呢,现在的浏览器分辨率参差不齐,对于Firefox等高级的浏览器,使用Background-size设置为100%即可,而IE浏览器就需要不同设置。

背景100%填充

只需要用background-size则可以控制其随容器的大小而自动伸缩

.picLUp{
background:url(logo.png) no-repeat;
width:100%;
height:40%;
background-size:100% 100%;
}

在这样的CSS控制之下,则可以达到背景图片随父容器大小而自动变化,达到填充效果,图片会被拉伸填充,这并不是我们想要的效果,那么我们可以不设置100%参数,而是使用cover参数。

background-size:cover

设置cover参数以后,背景图会按比例缩放填充满整个背景。

针对IE浏览器

但是在IE之下,你会发现上面的CSS控制会很不理想,它并不会因为你有了background-size:100% 100%;而自动缩放,图片原本怎么样就怎么样显示,如果容器比图片小,则只能显示图上的一部分,那么要达到这个效果,则需要使用IE特有的滤镜。

AlphaImageLoader
AlphaImageLoader兼容性在IE5.5+以上版本的浏览器上都可以完美运行。

hello{
    width:10%;
    height:50%;
    position:absolute;
    filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='1.jpg',sizingMethod='scale');
}
hxy

hxy

秦 夏

留下你的评论

快留下你的小秘密吧