我希望我的背景图像拉伸和缩放取决于浏览器视口的大小。
我在Stack Overflow上看到过一些问题,比如拉伸和缩放CSS背景。它工作得很好,但我想使用背景放置图像,而不是使用img标签。
在其中放置了一个img标签,然后用CSS向img标签致敬。
width:100%; height:100%;
它的工作,但这个问题有点老了,并指出在css3调整背景图像的大小将工作得很好。我已经尝试了第一个例子,但它不适合我。
是否有一个好的方法来做背景图像声明?
我希望我的背景图像拉伸和缩放取决于浏览器视口的大小。
我在Stack Overflow上看到过一些问题,比如拉伸和缩放CSS背景。它工作得很好,但我想使用背景放置图像,而不是使用img标签。
在其中放置了一个img标签,然后用CSS向img标签致敬。
width:100%; height:100%;
它的工作,但这个问题有点老了,并指出在css3调整背景图像的大小将工作得很好。我已经尝试了第一个例子,但它不适合我。
是否有一个好的方法来做背景图像声明?
当前回答
为了根据容器大小适当缩放图像,请使用以下方法:
background-size: contain;
background-repeat: no-repeat;
其他回答
使用我提到的代码…
HTML
<div id="background">
<img src="img.jpg" class="stretch" alt="" />
</div>
CSS
#background {
width: 100%;
height: 100%;
position: fixed;
left: 0px;
top: 0px;
z-index: -1; /* Ensure div tag stays behind content; -999 might work, too. */
}
.stretch {
width:100%;
height:100%;
}
这就产生了预期的效果:只有内容会滚动,背景不会滚动。
背景图像根据浏览器视口的大小调整为任何屏幕大小。当内容不适合浏览器视口时,用户需要滚动页面,当内容滚动时,背景图像在视口中保持固定。
使用css3,这似乎会容易得多。
为了根据容器大小适当缩放图像,请使用以下方法:
background-size: contain;
background-repeat: no-repeat;
下面的方法对我很有效。
.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*/
}
background-size: 100% 100%;
拉伸背景以填充两个轴上的整个元素。