background 互联网图片_完美的背景图全屏css代码 – background-size:cover?

在写主题样式的时候经常会碰到用背景图铺满整个背景的需求,这里分享下使用方法

需要的效果

图片以背景的形式铺满整个屏幕,不留空白区域

保持图像的纵横比(图片不变形)

图片居中

不出现滚动条

多浏览器支持

以图片bg.jpg为例

最简单,最高效的方法 CSS3.0

归功于css3.0新增的一个属性background-size,可以简单的实现这个效果,这里用fixed和center定位背景图,然后用background-size来使图片铺满,具体css如下

html {

background: url(bg.jpg) no-repeat center center fixed;

-webkit-background-size: cover;

-moz-background-size: cover;

-o-background-size: cover;

background-size: cover;

}

这段样式适用于以下浏览器

Safari 3+

Chrome

IE 9+

Opera 10+ (Opera 9.5 支持background-size属性 但是不支持cover)

Firefox 3.6+

这里你会发现ie8及以下版本不支持,这些蛋疼浏览器则需要添加下面的css来设置兼容

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

-ms-filter: "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='bg.jpg', sizingMethod='scale')";

这个用滤镜来兼容的写法并不是很完美,首先是图片路径,这里只能是相对于根目录的路径,或者用绝对路径;然后是图片纵横比改变了,是拉伸铺满的形式。尽管如此,总比留空白好多了吧(如果背景图bg.jpg的宽高够大,则可以不用这段,变成简单的平铺,比图片变形效果好写,大家可以尝试下)

如果你觉得上面的方法不是很满意,那试试下面这种

用img形式来实现背景平铺效果

首先在html中加入以下代码

然后通过css来实现铺满效果(假设图片宽度1024px)

img.bg {

min-height: 100%;

min-width: 1024px;

width: 100%;

height: auto;

position: fixed;

top: 0;

left: 0;

}

下面这个是为了屏幕小于1024px宽时,图片仍然能居中显示(注意上面假设的图片宽度)

@media screen and (max-width: 1024px) {

img.bg {

left: 50%;

margin-left: -512px;

}

}

兼容以下浏览器

以下浏览器的所有版本: Safari / Chrome / Opera / Firefox

IE9+

IE 7/8: 平铺效果支持,但是在小于1024px的屏幕下居中效果失效

下面再说一种方法

JQ模拟的方法

html部分

css部分

#bg { position: fixed; top: 0; left: 0; }

.bgwidth { width: 100%; }

.bgheight { height: 100%; }

js部分

$(window).load(function() {

var theWindow        = $(window),

$bg              = $("#bg"),

aspectRatio      = $bg.width() / $bg.height();

function resizeBg() {

if ( (theWindow.width() / theWindow.height()) 

$bg

.removeClass()

.addClass('bgheight');

} else {

$bg

.removeClass()

.addClass('bgwidth');

}

}

theWindow.resize(resizeBg).trigger("resize");

});

支持浏览器

以下浏览器的所有版本: Safari / Chrome / Opera / Firefox

IE7+

其实我自己一般用的是(因为够用了,咱不挑/其实上面的都是俺翻译过来的)

html部分

css部分

.bg{

position: fixed;

top: 0;

left: 0;

width: 100%;

height: 100%;

background: url(bg.jpg) no-repeat #000;

background-size: cover;

z-index: -1;

}

如果图片宽度没有达到1900px以上,我会加上ie的滤镜来支持ie8(这里我故意用了绝对路径,请知晓,代码长的我想砸了ie)

-ms-filter:"progid:DXImageTransform.Microsoft.AlphaImageLoader(src='.https://huilang.me/bg.jpg', sizingMethod='scale')";

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

浏览器支持

ie7+

绝大多数主流浏览器

CSS如此美妙 却被IE糟蹋了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值