如何拉伸背景图像来填充 div

我想为不同的 div 设置背景图片,但我的问题是:

  1. 图像的大小是固定的(60px)。
  2. 改变 Div 的尺寸

如何拉伸背景图像来填充 div 的整个背景?

#div2{
background-image:url(http://s7.static.hootsuite.com/3-0-48/images/themes/classic/streams/message-gradient.png);
height:180px;
width:200px;
border: 1px solid red;
}

看看这里的密码。

420215 次浏览

为此,你可以使用 CSS3background-size属性:

#div2{
background-image:url(http://s7.static.hootsuite.com/3-0-48/images/themes/classic/streams/message-gradient.png);
-moz-background-size:100% 100%;
-webkit-background-size:100% 100%;
background-size:100% 100%;
height:180px;
width:200px;
border: 1px solid red;
}

看看这个 http://jsfiddle.net/qdzaw/1/

background-size:100% 100%;

在背景图像下的 CSS。

您还可以指定精确的尺寸,例如:

background-size: 30px 40px;

这里: JSFiddle

你可以加上:

#div2{
background-image:url(http://s7.static.hootsuite.com/3-0-48/images/themes/classic/streams/message-gradient.png);
background-size: 100% 100%;
height:180px;
width:200px;
border: 1px solid red;
}

你可以在这里了解更多: Css3背景大小

你可使用:

background-size: cover;

或者使用一个大的背景图片:

background: url('../images/teaser.jpg') no-repeat center #eee;

现代 CSS3(推荐给未来,可能是最好的解决方案)

.selector{
background-size: cover;
/* stretches background WITHOUT deformation so it would fill the background space,
it may crop the image if the image's dimensions are in different ratio,
than the element dimensions. */
}

最大拉伸不收缩不变形 (可能不填充背景): background-size: contain;
力绝对拉伸 (可能会导致变形,但不会导致收成): background-size: 100% 100%;

“老”CSS“总是工作”的方式

绝对定位图像作为 (相对定位)父级的第一个子级,并将其拉伸到父级大小。

超文本标示语言

<div class="selector">
<img src="path.extension" alt="alt text">
<!-- some other content -->
</div>

相当于 CSS3 background-size: cover;:

为了动态地实现这一点,你必须使用 相反的包含方法选择(见下文) ,如果你需要将裁剪的图像居中,你需要一个 JavaScript 来动态地做到这一点-例如使用 jQuery:

$('.selector img').each(function(){
$(this).css({
"left": "50%",
"margin-left": "-"+( $(this).width()/2 )+"px",
"top": "50%",
"margin-top": "-"+( $(this).height()/2 )+"px"
});
});

实际例子:
css crop like example

相当于 CSS3 background-size: contain;:

这一个可能有点棘手-您的背景尺寸将溢出的父将 CSS 设置为100% ,另一个自动。 实际例子: css stretching background as image

.selector img{
position: absolute; top:0; left: 0;
width: 100%;
height: auto;
/* -- OR -- */
/* width: auto;
height: 100%; */
}

相当于 CSS3 background-size: 100% 100%;:

.selector img{
position: absolute; top:0; left: 0;
width: 100%;
height: 100%;
}

PS: 为了完全动态地使用“旧”方法来实现覆盖/包含的等价物(这样你就不必关心溢出/比率) ,你必须使用 javascript 来为你检测比率,并设置所描述的维度..。

使用 css 属性:

background-size: cover;
body{
margin:0;
background:url('image.png') no-repeat 50% 50% fixed;
background-size: cover;
}

要保持高宽比,请使用 background-size: 100% auto;

div {
background-image: url('image.jpg');
background-size: 100% auto;
width: 150px;
height: 300px;
}

试试这样:

div {
background-image: url(../img/picture1.jpg);
height: 30em;
background-repeat: no-repeat;
width: 100%;
background-position: center;
}

用途: 背景大小: 100% 100% ; 使背景图像适合 div 大小。