我想为不同的 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; }
看看这里的密码。
为此,你可以使用 CSS3background-size属性:
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/
加
background-size:100% 100%;
在背景图像下的 CSS。
您还可以指定精确的尺寸,例如:
background-size: 30px 40px;
这里: JSFiddle
你可以加上:
#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背景大小
你可使用:
background-size: cover;
或者使用一个大的背景图片:
background: url('../images/teaser.jpg') no-repeat center #eee;
.selector{ background-size: cover; /* stretches 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. */ }
最大拉伸不收缩不变形 (可能不填充背景): 强 > background-size: contain; 力绝对拉伸 (可能会导致变形,但不会导致收成): background-size: 100% 100%;
background-size: contain;
background-size: 100% 100%;
绝对定位图像作为 (相对定位)父级的第一个子级,并将其拉伸到父级大小。
超文本标示语言
<div class="selector"> <img src="path.extension" alt="alt text"> <!-- some other content --> </div>
为了动态地实现这一点,你必须使用 相反的包含方法选择(见下文) ,如果你需要将裁剪的图像居中,你需要一个 JavaScript 来动态地做到这一点-例如使用 jQuery:
$('.selector img').each(function(){ $(this).css({ "left": "50%", "margin-left": "-"+( $(this).width()/2 )+"px", "top": "50%", "margin-top": "-"+( $(this).height()/2 )+"px" }); });
实际例子:
这一个可能有点棘手-您的背景尺寸将溢出的父将 CSS 设置为100% ,另一个自动。 实际例子:
.selector img{ position: absolute; top:0; left: 0; width: 100%; height: auto; /* -- OR -- */ /* width: auto; height: 100%; */ }
.selector img{ position: absolute; top:0; left: 0; width: 100%; height: 100%; }
PS: 为了完全动态地使用“旧”方法来实现覆盖/包含的等价物(这样你就不必关心溢出/比率) ,你必须使用 javascript 来为你检测比率,并设置所描述的维度..。
使用 css 属性:
body{ margin:0; background:url('image.png') no-repeat 50% 50% fixed; background-size: cover; }
要保持高宽比,请使用 background-size: 100% auto;
background-size: 100% auto;
div { background-image: url('image.jpg'); background-size: 100% auto; width: 150px; height: 300px; }
试试这样:
div { background-image: url(../img/picture1.jpg); height: 30em; background-repeat: no-repeat; width: 100%; background-position: center; }
用途: 背景大小: 100% 100% ; 使背景图像适合 div 大小。