如何拉伸背景图像以覆盖整个HTML元素?

Fun*_*ung 86 html css background-image

我正在尝试获取HTML元素(body,div等)的背景图像以拉伸其整个宽度和高度.

没有太多运气.除了作为背景图像之外,它是否可能或者我必须以其他方式做到这一点?

我目前的CSS是:

body {
    background-position: left top;
    background-image: url(_images/home.jpg);
    background-repeat: no-repeat;
}
Run Code Online (Sandbox Code Playgroud)

提前致谢.

编辑:我并不热衷于在Gabriel的建议中维护CSS,所以我改变了页面的布局.但这似乎是最好的答案,所以我将其标记为这样.

小智 188

<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>
Run Code Online (Sandbox Code Playgroud)

  • 100%100%不保持原始图像的宽高比.'cover'缩放图像,同时保持其固有的宽高比(如果有的话),使其最小尺寸,使其宽度和高度都可以完全覆盖背景定位区域.您还可以使用"包含"来缩放图像,同时保留其固有的纵横比(如果有),使其最大尺寸,使其宽度和高度都能够适合背景定位区域. (4认同)
  • 这是最好的解决方案. (2认同)

Tam*_*mui 8

总之,你可以尝试这....

<div data-role="page" style="background:url('backgrnd.png'); background-repeat: no-repeat; background-size: 100% 100%;" >
Run Code Online (Sandbox Code Playgroud)

我用过少量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>
Run Code Online (Sandbox Code Playgroud)

它对我来说很好.


Tra*_*ins 6

不确定是否可以拉伸背景图像.如果您发现在所有目标浏览器中都不可能或不可靠,您可以尝试使用z-index设置为较低的拉伸img标记,并将位置设置为绝对,以便其他内容显示在其上.

让我们知道你最终做了什么.

编辑:我建议的基本上是加布里埃尔的链接.所以尝试:)


Tra*_*mer 5

要扩展@PhiLho答案,您可以将超大图像(或任何大小的图像)居中放置在页面上,其中包括:

{ 
background-image: url(_images/home.jpg);
background-repeat:no-repeat;
background-position:center; 
}
Run Code Online (Sandbox Code Playgroud)

或者,您可以使用背景颜色与图像背景相匹配的较小图像(如果是纯色)。这可能适合或可能不适合您的目的。

{ 
background-color: green;
background-image: url(_images/home.jpg);
background-repeat:no-repeat;
background-position:center; 
}
Run Code Online (Sandbox Code Playgroud)


leo*_*ges 5

如果您需要在调整屏幕大小时拉伸背景图像,并且不需要与旧版浏览器版本兼容,则可以使用以下方法:

body {
    background-image: url('../images/image.jpg');
    background-repeat: no-repeat;
    background-size: cover;
}
Run Code Online (Sandbox Code Playgroud)