html - Flex 布局,其中每个子项的高度彼此相同 - 图像压缩问题

标签 html css flexbox

JS Fiddle我正在使用 flex 布局。我有一个列表:

HTML:

<ul>
    <li><img src="....."></li>
    ....
</ul>

CSS:

ul{
  list-style-type: none;
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
}

li{
  width: 25%;
  display: flex;

}

img{
  height: auto;
  max-width: 100%;
}

问题是,图像被拉到全高 - 如何保持图像的纵横比?我还希望所有列表元素具有相同的高度(为此我使用了 display: flex)。

最佳答案

您可以避免使用 flex 值将 img 拉伸(stretch)为:flex:1 0 100%https://jsfiddle.net/86qmxk08/5/

ul{
  list-style-type: none;
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
}
li{
  width: 25%;
  display: flex;
}

img{
  flex:1 0  100%;
}
<ul>
  <li><img src="https://img.buzzfeed.com/buzzfeed-static/static/enhanced/webdr03/2013/5/5/23/enhanced-buzz-11819-1367809268-11.jpg"></li>
  <li><img src="http://www.samerweddings.com/en/img/birthday/album/orginal/0.64044500%201391324553_cat-thumb%5B1%5D.jpg"></li>
  <li><img src="https://img.buzzfeed.com/buzzfeed-static/static/enhanced/webdr03/2013/5/5/23/enhanced-buzz-11819-1367809268-11.jpg"></li>
   <li><img src="https://img.buzzfeed.com/buzzfeed-static/static/enhanced/webdr03/2013/5/5/23/enhanced-buzz-11819-1367809268-11.jpg"></li>
  <li><img src="https://img.buzzfeed.com/buzzfeed-static/static/enhanced/webdr03/2013/5/5/23/enhanced-buzz-11819-1367809268-11.jpg"></li>
  <li><img src="https://img.buzzfeed.com/buzzfeed-static/static/enhanced/webdr03/2013/5/5/23/enhanced-buzz-11819-1367809268-11.jpg"></li>
</ul>

当比例不同时,您可能需要 javascript 来裁剪太高的图像。

关于html - Flex 布局,其中每个子项的高度彼此相同 - 图像压缩问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38485697/

相关文章:

css - 如何使用 CSS 将列单元格内容移动到新行(使 HTML 网格响应)

javascript - 在移动 chrome 上调整窗口大小时 flexbox 中的奇怪行为

html - div 的高度不会在 IE7 中自动调整

html - 渲染一行后跟文本

html - 如何为垂直文本提供 2 种不同颜色的字体,以便文本 1 和文本 2 在一个 "div class"中?

jquery - 使用 jquery 滑动导航栏

Javascript 转换

javascript - 在 flexbox 列上均匀分布不同高度的盒子

javascript - 嵌套表单标签的第一种形式不响应 css 显示 :none

javascript - 导航栏没有在小屏幕上显示我必须使用哪个 Bootstrap 类或 css