我希望我的背景图像拉伸和缩放取决于浏览器视口的大小。

我在Stack Overflow上看到过一些问题,比如拉伸和缩放CSS背景。它工作得很好,但我想使用背景放置图像,而不是使用img标签。

在其中放置了一个img标签,然后用CSS向img标签致敬。

width:100%; height:100%;

它的工作,但这个问题有点老了,并指出在css3调整背景图像的大小将工作得很好。我已经尝试了第一个例子,但它不适合我。

是否有一个好的方法来做背景图像声明?


当前回答

下面的方法对我很有效。

.back-ground {
   background-image: url("../assets/background.png");
   background-size: 100vw 100vh;
}

这可以在不同的维度上覆盖整个背景

其他回答

CSS:

html,body {
    background: url(images/bg.jpg) no-repeat center center fixed;
    -webkit-background-size: cover; /* For WebKit*/
    -moz-background-size: cover;    /* Mozilla*/
    -o-background-size: cover;      /* Opera*/
    background-size: cover;         /* Generic*/
}

您希望仅使用一个图像就实现这一点吗?因为你可以用两张图片来做一个类似的背景拉伸。比如PNG图片。

我以前做过这个,并不难。此外,我认为拉伸只会损害背景的质量。如果你添加一个巨大的图像,它会减慢缓慢的电脑和浏览器。

我希望将背景图像居中并缩放,而不是将其拉伸到整个页面,并且我希望保持纵横比。这对我来说很管用,多亏了其他答案中提出的变化:

内联图片:------------------------

<div id="background">
    <img src="img.jpg" class="stretch" alt="" />
</div>

CSS ----------------------------------

html {
    height:100%;
}

#background {
    text-align: center;
    width: 100%; 
    height: 100%; 
    position: fixed;
    left: 0px; 
    top: 0px; 
    z-index: -1;
}

.stretch {
    margin: auto;
    height:100%;
}

使用Backstretch插件。甚至可以有几张图片幻灯片。它也可以在容器中工作。这种方式,例如,一个可以只有背景的一部分被背景图像覆盖。

因为即使我可以让它工作,证明它是一个易于使用的插件:)。

下面的方法对我很有效。

.back-ground {
   background-image: url("../assets/background.png");
   background-size: 100vw 100vh;
}

这可以在不同的维度上覆盖整个背景