【问题标题】:How to make image flex to it's width?如何使图像弯曲到它的宽度?
【发布时间】:2016-09-29 13:23:11
【问题描述】:

如何防止我的图片被拉伸超过 200 像素的自然宽度?

footer {
  display: flex;
}
img {
  flex: 1;
  margin: 1em;
}
<footer>
  <img src=http://www.placebacon.net/200/150>
</footer>

【问题讨论】:

  • 尝试删除img标签的flex属性。
  • 不是答案,只是请注意,最好将所有 HTML 属性括在引号中。并在技术上用斜杠关闭标签。所以,placebacon.net/200/150" />
  • 你是什么意思?将 img 设置为 100%; ?
  • 图片需要怎么显示?在图像的原始宽度中?

标签: css flexbox


【解决方案1】:

你可以把它扔进一个简单的容器里,然后用它来伸缩:

<footer>
  <div>
    <img src=http://www.placebacon.net/200/150>
  </div>
</footer>
footer {
  display: flex;
}
div {
  flex: 1;
  margin: 1em;
}
img {
  max-width: 100%;
}

【讨论】:

  • 我认为不需要额外的 div。我更喜欢布赖恩的回答。
【解决方案2】:

取消图像的弹性并将最大宽度设置为 100%。这将允许图像增长到最大尺寸并在其父级缩小时缩小。然后将 align-items: flex-start 添加到容器中。这将允许纵横比在缩小时保持不变。

footer {
  display: flex;
  align-items: flex-start;
}
img {
  margin: 1em;
  max-width: 100%;
}
<footer>
  <img src=http://www.placebacon.net/200/150>
</footer>

【讨论】:

  • 是 "align-items: flex-start;"需要吗?
  • 页脚在图片自然宽度之间收缩时,需要保持图片的纵横比不变。如果这不会发生,那就没有必要了。
  • 为什么不需要 flex: 1?
猜你喜欢
  • 2019-12-10
  • 2021-06-06
  • 1970-01-01
  • 1970-01-01
  • 2023-03-30
  • 2018-08-21
  • 2019-11-26
  • 2015-08-29
  • 2011-12-20
相关资源
最近更新 更多