【发布时间】:2016-10-03 05:46:22
【问题描述】:
Flexbox 具有将图像拉伸到其自然高度的这种行为。换句话说,如果我有一个带有子图像的 flexbox 容器,并且我调整了该图像的宽度,则高度根本不会调整大小并且图像会被拉伸。
div {
display: flex;
flex-wrap: wrap;
}
img {
width: 50%
}
<div>
<img src="https://i.imgur.com/KAthy7g.jpg" >
<h1>Heading</h1>
<p>Paragraph</p>
</div>
是什么原因造成的?
【问题讨论】:
-
在 Firefox 和 IE 中工作正常。在 Chrome 中,您可以使用图像中的
align-self:flex-start进行修复。不知道为什么,可能chrome的默认值是stretch。 -
还增加高度:100%; img 解决了这个问题,我想知道为什么它也会拉伸图像。
-
@blonfu,所有浏览器的默认值为
align-items: stretch/align-self: stretch。如果您在每个项目周围添加边框并删除wrap,您会注意到所有项目在所有浏览器中都会拉伸:codepen.io/anon/pen/oLXBVx?editors=1100 -
好的。我学到了这一点,但图像在 chrome 和其他浏览器中的工作方式不同。如果您不定义高度,Chrome 就不会尊重纵横比。
-
@blonfu,是的。毫无疑问,存在浏览器不一致和更精细的级别。