gpt4 book ai didi

css - 带有图像的 flex 子项的大小不正确

转载 作者:行者123 更新时间:2023-11-28 12:29:43 24 4
gpt4 key购买 nike

我的元素中有一个类似的案例:

<!DOCTYPE html>
<html>
<head>
<title></title>
<style type="text/css">
.wrapper {
display: flex;
width: 600px;
height: 300px;
}

.container {
display: flex;
width: 100%;
}

img {
height: 100%;
}
</style>
</head>
<body>
<div class="wrapper">
<div class="container">
<div class="image-wrapper">
<img src="https://placehold.co/200x600">
</div>
<h2>text</h2>
</div>
<div>
test
</div>
</div>
</body>
</html>

我有固定宽度的容器 ( .container ),它设置它的 child 的高度来匹配它自己的高度(由于 align-items: stretch; 默认)。在其中一个容器中,我有一个图像 ( <img> ),我希望它的高度与其父级 ( .image-wrapper ) 相同,同时保持比例。在演示中,会发生这种情况,但是 .image-wrapper宽度不更新。至少不总是……

有时,图像显示如下(不正确):

incorrect sizing

...有时,它看起来像这样(正确):

enter image description here

我认为这与浏览器没有更新 .image-wrapper 的宽度有关.在不正确的情况下,它的宽度为 200 (占位符图像的原始大小),但在将图像调整为 100x300 后(由于其 height: 100% 及其父级为 300px 而自然尺寸为 200x600),父级的宽度不会更新以反射(reflect)这一点。它应该从 200 改变至 100 ,图像现在调整大小的值。

一件奇怪的事情是,如果尺寸不正确并且您添加了 width: 100%.image-wrapper在检查器中然后删除它,它的宽度被刷新并且现在正确显示。

如果您下载代码片段并在浏览器中打开它,您应该会看到图像显示不正确,直到您打开 DevTools 并禁用缓存。之后(我猜是因为图像需要一些时间来加载),宽度在刷新时正确设置。

这发生在 Windows 10 上最新的 Chrome、Firefox 和 IE11 上。这是一个 fiddle也是。

为什么会这样?如何解决?

最佳答案

事实上,这显然是 Chrome 中的一个已知错误,但令我困惑的是,我在 Firefox 中也遇到了这个问题......

有两种解决方法:

1)

img{
height: 100%;
width: 100px; /* Set a specific width to your image */
}

2) 显然删除 image-wrapper div 也立即解决了这个问题。

.wrapper {
display: flex;
flex-flow: row nowrap;
flex-basis: 600px;
height: 600px;
}

.container {
display: flex;
height: 300px;
}

img {
height: 100%;
}
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<div class="wrapper">
<div class="container">
<img src="https://placehold.co/200x600">
<h2>text</h2>
</div>
<div>
test
</div>
</div>
</body>
</html>

关于css - 带有图像的 flex 子项的大小不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56258442/

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