现代 CSS3(为未来推荐,可能是最好的解决方案)
.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%;
“旧” CSS“始终有效”的方式
绝对定位图像作为(相对定位)父级的第一个子级并将其拉伸到父级大小。
HTML
<div class="selector">
<img src="path.extension" alt="alt text">
<!-- some other content -->
</div>
相当于 CSS3 background-size: cover;
:
要动态地实现这一点,您必须使用与包含方法替代相反的方法(见下文),如果您需要将裁剪的图像居中,您将需要一个 JavaScript 来动态地做到这一点 - 例如使用 jQuery:
$('.selector img').each(function(){
$(this).css({
"left": "50%",
"margin-left": "-"+( $(this).width()/2 )+"px",
"top": "50%",
"margin-top": "-"+( $(this).height()/2 )+"px"
});
});
实际例子:
相当于 CSS3 background-size: contain;
:
这个可能有点棘手 - 会溢出父级的背景尺寸将 CSS 设置为 100%,另一个设置为自动。
实际例子:
.selector img{
position: absolute; top:0; left: 0;
width: 100%;
height: auto;
/* -- OR -- */
/* width: auto;
height: 100%; */
}
相当于 CSS3 background-size: 100% 100%;
:
.selector img{
position: absolute; top:0; left: 0;
width: 100%;
height: 100%;
}
PS:要完全动态地以“旧”方式进行覆盖/包含等价物(因此您不必关心溢出/比率),您必须使用 javascript 为您检测比率并按照描述设置尺寸。 ..