宽度超过高度时保持图像宽高比

时间:2019-07-03 16:21:13

标签: html css aspect-ratio

我尝试在width > heightheight > width时保持正确的图像宽高比。当宽度超过高度时,这样做会出现问题,图像将溢出到父容器中。我不希望这种情况发生,而是重新调整图像大小以保持正确的宽高比。

此示例的图像为640 x 480,比例为4:3

如果我拖动容器宽度小于高度,则需要均匀填充顶部/底部,而不会出现图像溢出。如果我将容器拖动到比高度更宽的位置,那么我什至需要左右左右填充,而不会出现图像溢出。

.main {
    height: 100%;
    width: 100%;
}
.wrapper {
    position: relative;
    padding-bottom: 75%;
}
.wrapper img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

<div class="main">
    <div class="wrapper">
        <img src="https://placeimg.com/640/480/animals" />
    </div>
</div>

JSFiddle

enter image description here

2 个答案:

答案 0 :(得分:1)

对于现代浏览器,您应该只设置宽度。浏览器将执行其他所有操作。

示例:

.main {
    height: auto;
    width: auto;
}
.wrapper {
    position: relative;
    padding-bottom: 75%;
}
.wrapper img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
}

答案 1 :(得分:0)

您可以设置height:autowidth:100%来使图像具有响应性

.my-img {
  width: 100%;
  height: auto;
}
<img src="https://placeimg.com/640/480/animals" alt="Nature" class="my-img" >