css - 仅使用 CSS 使图像在网格中居中,限制高度,保持纵横比

标签 css flexbox

我有一个图像网格,要在一行中显示。网格的高度不能超过浏览器的高度。每个图像可以是任意高度和任意宽度。

图像必须在其容器中垂直和水平居中。如果图像的高度或宽度大于其容器,则图像不应溢出其边界。

这可能吗?

有很多帖子问类似的问题。

Constrain img to div and maintain aspect ratio?

CSS: How can I set image size relative to parent height?

等等。然而,我看到没有人使用 flexbox。

<div class='grid-container'>
  <div class='grid'>
    <div class='col'>
      <div class='img-container'>
        <img src='http://via.placeholder.com/300x150'/>
      </div>
    </div>
    <div class='col'>
      <div class='img-container'>
        <img src='http://via.placeholder.com/200x400'/>
      </div>
    </div>
  </div>
</div>

https://codepen.io/stljeff1/pen/MEWoPN

这是一个代码笔,展示了我正在尝试做的事情

为什么 img {max-height: 100%; } 除了 img { height: 150px; 什么都不做}约束图像?

************编辑****************** 正如下面评论中所指出的,我可以使用 object-fit。该示例引用了 IE Edge 中的 Works,而不是 IE 11。

最佳答案

我不知道你是否尝试这样做:

    img {
      width: 100%;
      max-height: 100%;
      display: block;
    }

https://codepen.io/headmax/pen/wrvqRv

关于css - 仅使用 CSS 使图像在网格中居中,限制高度,保持纵横比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46185565/

相关文章:

html - 字体下拉箭头不显示

html - 在不应该的情况下使用 50% 父级宽度换行的 Flex div

html - 创建具有动态内容的非对称两列网格的最佳方法是什么?

jquery - 如何使 Bootstrap 网格列跨越屏幕的整个高度

html - CSS 边框折叠不适用于值折叠

html - 无法水平对齐 h2 和 Button

jquery - 响应式 Bootstrap 3 图像交换翻转

javascript - 如何阻止li标签在添加内容后下台?

css - 需要 flexbox children 才能正常显示

html - min-height 100vh 创建垂直滚动条,即使内容小于视口(viewport)