【发布时间】:2018-12-14 16:52:28
【问题描述】:
我已阅读其他答案,但找不到适合我的答案。我正在尝试创建一个响应式图像库,并采用不同大小和方向的图像,即有些是横向的,有些是纵向的。我想要它,这样无论它的大小或方向如何,它都会填充 div 的大小并在其中居中。
目前,div 的高度为 250px,宽度为容器的 23%。这是我能得到的最好的。使用这种方法,横向图像显示良好,但纵向图像的两侧都有空白,因为它没有占用完整的 div。
我怎样才能得到它,以便无论图像的大小如何,它都会填充 div 而不拉伸它?我不介意图像是否更大并通过溢出被切断:只要它完全覆盖 div,就隐藏起来。
编辑:纠正了我所说的图像容器宽度的大小,因为我说错了。
这是我的代码:
CSS
.gallery-container {
width: 90%;
margin: 0 auto;
}
.image-container {
float: left;
position: relative;
overflow: hidden;
height: 250px;
margin: 5px;
border: 1px solid #ccc;
width: 23%;
}
div.image-container:hover {
border: 1px solid #777;
}
div.image-container img {
position: absolute;
left: 50%;
top: 50%;
transform: translate( -50%, -50%);
height: 100%;
}
HTML
<div class="gallery-container">
<div class="image-container">
<a target="_blank" href="img/60.jpg">
<img src="img/60.jpg" alt="flowers">
</a>
<!-- <div class="desc">Add a description here
</div> -->
</div>
<div class="image-container">
<a target="_blank" href="img/portrait.jpg">
<img src="img/portrait.jpg" alt="portrait">
</a>
<!-- <div class="desc">Add a description here</div> -->
</div>
<div class="image-container">
<a target="_blank" href="img/flowers2.jpg">
<img src="img/flowers2.jpg" alt="flowers2">
</a>
<!-- <div class="desc">Add a description here</div> -->
</div>
</div>
【问题讨论】:
-
介意裁剪的图像,或者您是否要在不裁剪的情况下以最大的宽度或高度呈现图像?
-
我刚刚更正了我的帖子以提及这一点。我不介意它是否被裁剪。只要填满宽度、高度并居中即可。
-
object-position: 50% 50%to center 和object-fit:covercss-tricks.com/on-object-fit-and-object-position 删除 img 上的所有样式,否则将无效。 -
这是一种有趣的方法,但由于某种原因,它对我来说根本不起作用。我删除了您提到的其他样式,并将它们替换为对象位置和对象匹配,但所发生的只是它们在 div 中放大为全尺寸图像并且只显示左上角。当我尝试操纵对象位置时,它们的位置不会有所不同......
-
没关系,我用那个方法让它工作,只是稍微摆弄了一下。知道如何使我的整个画廊居中吗?它目前是从左到右的,当我把浏览器窗口变大时它没有居中。
标签: css