将图像缩放到 flexbox 中的最大尺寸 [重复]

Posted

技术标签:

【中文标题】将图像缩放到 flexbox 中的最大尺寸 [重复]【英文标题】:Scale image to max size in a flexbox [duplicate] 【发布时间】:2016-01-09 01:24:15 【问题描述】:

我有一个 flexbox,其中包含几个宽度约为 50% 的 flexbox 项目。一个 flexbox 项目要么包含一个或多个 <p> 元素,要么包含一个 <img />

带有图片的 flexbox 项目应该完全填充图片,而不是将其设置为周围 div 的背景。图片下方似乎总是有一个小红条,即使图像填满整个宽度。如何使图像填满整个 flexbox 项?

图像的纵横比是否改变无关紧要。

我不只是希望图像下方的空白区域消失。我希望它也可以伸展以使用 flexbox 项目的整个宽度。所以它填充了 flexbox 项。

.container 
  width: 500px;

.flexbox 
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;

.flex-item 
  border: 1px solid black;
  background: red;
  margin: 25px 0;
  width: 47%;
  flex-basis: 47%;

img 
  max-width: 100%;
  background: white;
<div class="container flexbox">
  <div class="flex-item">
    <p>It should work with a big image</p>
  </div>
  <div class="flex-item">
    <img src="http://goo.gl/6EO4mj" />
  </div>
  <div class="flex-item">
    <p>But also with a small one</p>
  </div>
  <div class="flex-item">
    <img src="http://goo.gl/nxXSMO" />
  </div>
  <div>

编辑:增加了重点。添加了更多解释。

【问题讨论】:

您似乎没有在这里真正尝试过任何东西。是的,您有代码,但我没有看到任何迹象表明您已尝试拉伸该图像或以其他方式填充容器。 @cimmanon 我尝试了几种显示模式。使用更高的最大宽度。从父 div 继承宽度。我就是无法让它正常工作。 备用副本:***.com/questions/16501668/… 您阅读了所有个答案还是只阅读了第一个答案的一半? @cimmanon Jesus.. 我之前尝试过 100% 宽度,所以我没有再费心再试一次,但现在我发现我在 css 的那部分有错字.. 感谢您的固执伙计,因为你实际上帮助我找到了我的错误。 【参考方案1】:

display:block 添加到 img :

.container 
  width: 500px;

.flexbox 
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;

.flex-item 
  border: 1px solid black;
  background: red;
  margin: 25px 0;
  width: 47%;
  flex-basis: 47%;

img 
  max-width: 100%;
  background: white;
  display :block
<div class="container flexbox">
  <div class="flex-item">
    <p>It should work with a big image</p>
  </div>
  <div class="flex-item">
    <img src="http://goo.gl/6EO4mj" />
  </div>
  <div class="flex-item">
    <p>But also with a small one</p>
  </div>
  <div class="flex-item">
    <img src="http://goo.gl/nxXSMO" />
  </div>
  <div>

说明:img默认显示inlinevertical-align:baseline,你看到的空间是基线下的空间。

您也可以将垂直对齐方式更改为middle

【讨论】:

以上是关于将图像缩放到 flexbox 中的最大尺寸 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

较小图像视图中的较大尺寸图像

JS:图像上传实时操作、缩放、尺寸和裁剪

centerInside 不能将 Drawable 缩放到 ImageView

IOS - 将背景图像缩放到不同的屏幕尺寸并将标签放在固定位置上

CSS flexbox:使用深度嵌套的图像来摊销不断变化的布局尺寸

图片框的图像缩放