我正在尝试获取HTML元素(body,div等)的背景图像以拉伸其整个宽度和高度。
没有太多运气。除了作为背景图像之外,它是否可能或者我必须以其他方式做到这一点?
我目前的css是:
body {
background-position: left top;
background-image: url(_images/home.jpg);
background-repeat: no-repeat;
}
提前致谢。
编辑:我并不热衷于在Gabriel的建议中维护CSS,所以我改变了页面的布局。但这似乎是最好的答案,所以我将其标记为。
答案 0 :(得分:182)
<style>
{ margin: 0; padding: 0; }
html {
background: url('images/yourimage.jpg') no-repeat center center fixed;
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: cover;
}
</style>
答案 1 :(得分:14)
使用background-size
媒体资源:http://www.w3.org/TR/css3-background/#the-background-size
答案 2 :(得分:8)
总之,你可以尝试这个......
<div data-role="page" style="background:url('backgrnd.png'); background-repeat: no-repeat; background-size: 100% 100%;" >
我使用过少量css和js ......
<link rel="stylesheet" href="css/jquery.mobile-1.0.1.min.css" />
<script src="js/jquery-1.7.1.min.js"></script>
<script src="js/jquery.mobile-1.0.1.min.js"></script>
它对我来说很好。
答案 3 :(得分:6)
不确定是否可以拉伸背景图像。如果您发现它在所有目标浏览器中都不可能或不可靠,您可以尝试使用z-index设置较低的拉伸img标记,并将位置设置为绝对,以便其他内容显示在其上。
让我们知道你最终在做什么。
编辑:我建议的基本上是加布里埃尔链接中的内容。所以试试:))
答案 4 :(得分:5)
要扩展@PhiLho答案,您可以将非常大的图像(或任何尺寸的图像)置于页面中心:
{
background-image: url(_images/home.jpg);
background-repeat:no-repeat;
background-position:center;
}
或者您可以使用背景颜色与图像背景相匹配的较小图像(如果是纯色)。这可能适合您的目的,也可能不适合。
{
background-color: green;
background-image: url(_images/home.jpg);
background-repeat:no-repeat;
background-position:center;
}
答案 5 :(得分:4)
如果您需要在调整屏幕大小的同时拉伸背景图片,并且不需要与旧浏览器版本兼容,则可以完成以下工作:
body {
background-image: url('../images/image.jpg');
background-repeat: no-repeat;
background-size: cover;
}
答案 6 :(得分:3)
如果你有一个大的风景图像,这个例子在这里以纵向模式调整背景大小,使它显示在顶部,在底部留空:
html, body {
margin: 0;
padding: 0;
min-height: 100%;
}
body {
background-image: url('myimage.jpg');
background-position-x: center;
background-position-y: bottom;
background-repeat: no-repeat;
background-attachment: scroll;
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: cover;
}
@media screen and (orientation:portrait) {
body {
background-position-y: top;
-webkit-background-size: contain;
-moz-background-size: contain;
-o-background-size: contain;
background-size: contain;
}
}
答案 7 :(得分:3)
以下代码主要用于实现问题效果:
body {
background-image: url('../images/bg.jpg');
background-repeat: no-repeat;
background-size: 100%;
}
答案 8 :(得分:2)
background: url(images/bg.jpg) no-repeat center center fixed;
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: cover;
答案 9 :(得分:0)
你不能在纯CSS中。在所有其他组件后面覆盖整个页面的图像可能是您最好的选择(看起来就像上面给出的解决方案)。无论如何,无论如何,它看起来很糟糕。我会尝试一个足够大的图像来覆盖大多数屏幕分辨率(比如高达1600x1200,高于稀疏度),限制页面的宽度,或者只是使用平铺图像。
答案 10 :(得分:0)
图片{
background-size: cover;
background-repeat: no-repeat;
background-position: center;
padding: 0 3em 0 3em;
margin: -1.5em -0.5em -0.5em -1em;
width: absolute;
max-width: 100%;
答案 11 :(得分:0)
只需使div成为body的直接子代(例如,类名称为bg),并包含body中的所有其他元素,然后将其添加到CSS文件中即可:
.bg {
background-image: url('_images/home.jpg');//Put your appropriate image URL here
background-size: 100% 100%; //You need to put 100% twice here to stretch width and height
}
请参阅此链接:https://www.w3schools.com/css/css_rwd_images.asp 向下滚动到显示以下内容的部分:
- 如果将background-size属性设置为“ 100%100%”,则背景图像将拉伸以覆盖整个内容区域
其中显示的“ img_flowers.jpg”会扩展到屏幕或浏览器的大小,而不管您如何调整其大小。
答案 12 :(得分:-1)
对我有用
.page-bg {
background: url("res://background");
background-position: center center;
background-repeat: no-repeat;
background-size: 100% 100%;
}