gpt4 book ai didi

html - 为什么在 flexbox 中用 div 包装图像可以正确缩放但 img 元素不能缩放?

转载 作者:太空宇宙 更新时间:2023-11-03 22:20:34 27 4
gpt4 key购买 nike

我想知道为什么将 img flex 元素包装在 div 中会导致它们正确缩放,但单独使用 img 元素却不会。

如果你 checkout this JSFiddle ,您会看到将图像包装在 div 中确实如 StackOverflow 上其他帖子所建议的那样有效,但它似乎不起作用。并且 align-self 没有按照建议更改任何内容 here .我尝试 align-items 以覆盖默认的 stretch 但这不起作用。我还尝试清除 min-heightmin-width 值,因为它们默认设置为 autoThis答案证明使用 div 包装器是合理的,除了它没有解释 为什么 它适用于 div flexbox 元素而不适用于 img 元素直接。

这是一些 HTML:

 .stack {
display:flex;
max-width:600px;
align-items:center; /* this does not cause image tags to resize */
}
.stack img {
min-height:0;
min-width:0;
height:auto;
align-self:center;
}
.test img {
width:100%;
}
<div class="stack">
<div class="test">
<img src="https://placehold.it/200x200/E8117F/FFFFFF"/>
<!--Wrapping in a div works-->
</div>

<img src="https://placehold.it/200x200/E8117F/FFFFFF"/>
<img src="https://placehold.it/200x200/E8117F/FFFFFF"/>
<img src="https://placehold.it/200x200/E8117F/FFFFFF"/>
<img src="https://placehold.it/200x200/E8117F/FFFFFF"/>
<img src="https://placehold.it/200x200/E8117F/FFFFFF"/>
</div>

为什么用 div 包裹图像似乎是唯一的解决方案?我不明白为什么正确缩放图像的唯一方法是通过 div 包装器。

最佳答案

CSS flexbox ,您需要直接从包装父元素寻址子元素。

在您的示例中,为了防止重复 <div><img><div>结构,你只需删除 <div class="test"></div> .

如果您需要将一个类(如您的示例)应用于您可以的图像。

.stack {
display: flex;
max-width: 600px;
align-items: center;
border:1px solid gold;
}

.stack img {
min-height: 0;
min-width: 0;
height: auto;
width:200px;
align-self: center;
}

.test img {
width: 100%;
}

.test:nth-of-type(1) {
border: 2px solid #000;
}
<body>
<div class="stack">
<img class="test" src="http://picsum.photos/200/200" />
<img class="test" src="http://picsum.photos/200/200" />
<img class="test" src="http://picsum.photos/200/200" />
<img class="test" src="http://picsum.photos/200/200" />
<img class="test" src="http://picsum.photos/200/200" />
<img class="test" src="http://picsum.photos/200/200" />
</div>
</body>

调整浏览器大小以查看它的工作...

关于html - 为什么在 flexbox 中用 div 包装图像可以正确缩放但 img 元素不能缩放?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54071620/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com