背景图片拉伸

需要做一个页面让背景图片能全屏平铺,对于现代浏览器来说很简单,使用下面的代码即可:

1
2
3
4
5
6
7
body{
background:url(../../img/user/user_bg_2.jpg) no-repeat center center fixed;
-webkit-background-size: cover;
-moz-background-size: cover;
-c-background-size: cover;
background-size: cover;
}

这个方式可以兼容的浏览器有

* Safari 3+
* Chrome
* IE 9+
* Opera 10+ (Opera 9.5 支持background-size属性 但是不支持cover)
* Firefox 3.6+

但是蛋疼的IE浏览器,就是不给你面子,当你的背景图片宽度小于当前的浏览器宽度的时候,就会有留白,
那么就需要再加上两句,如下

1
2
3
4
5
6
7
8
9
10
body{
background:url(../../img/user/user_bg_2.jpg) no-repeat center center fixed;
-webkit-background-size: cover;
-moz-background-size: cover;
-c-background-size: cover;
background-size: cover;

filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/res/img/user/user_bg_2.jpg', sizingMethod='scale');
-ms-filter: "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/res/img/user/user_bg_2.jpg', sizingMethod='scale')";
}

需要注意的是,需要使用绝对路径。用滤镜硬拉伸,可能需要图片做点高斯模糊,要不然效果会很糟糕。

另外还有用img标签来实现的,可以参照这篇文章