如何拉伸背景图像,以填补一个div(How to stretch the background im

2019-06-25 19:59发布

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

  1. 图像的大小是固定的(60像素)。
  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;
}

这里检查的代码。

Answer 1:

background-size:100% 100%;

你的CSS底下的背景图片。

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

background-size: 30px 40px;

在这里: 的jsfiddle



Answer 2:

您可以使用:

background-size: cover;

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

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


Answer 3:

现代CSS3(建议为未来与概率。最好的解决方案)

.selector{
   background-size: cover;
   /* streches 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. */
}

最大。 伸展而不作物也不变形(可能无法填充backg): background-size: contain;
力绝对拉伸(可能会导致变形,但没有作物): background-size: 100% 100%;

“老” CSS“一直在努力”的方式

绝对定位的图像作为(相对定位)亲本的一个第一子和它streching到母体大小。

HTML

<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" 
   }); 
});

实际的例子:

CSS3的等效background-size: contain;

这可以是一个有点棘手 - 这将溢出父将CSS设置为100%,另一种为自动您的背景的尺寸。 实际的例子:

.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来检测比对你和设定尺寸discribed。 ..



Answer 4:

为此,您可以使用CSS3 background-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/



Answer 5:

你可以加:

#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背景大小



Answer 6:

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


Answer 7:

通过使用CSS属性:

background-size: cover;


Answer 8:

用途:背景尺寸:100%100%; 为了使背景图片以适应DIV大小。



Answer 9:

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

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


Answer 10:

尝试是这样的:

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


文章来源: How to stretch the background image to fill a div