【发布时间】:2020-11-23 19:53:19
【问题描述】:
我使用了一个 flexbox 容器,其中包含两个等宽的 divs。左侧显示图像,右侧显示一些文本。该代码包装了 Google Chrome 的项目,但在 Internet Explorer 11 中,它将右侧部分移动到左侧顶部。我该如何解决这个问题?我尝试对两个孩子使用flex: auto,以及flex-grow: 1、flex-shrink: 1 和flex-basis: 0/flex-basis: auto。我还尝试将px 或% 添加到0,但它们都给出相同的结果...
.d1 {
display: flex;
flex-wrap: wrap;
padding: 4%;
}
.image-container {
align-items: center;
display: flex;
flex: 1;
justify-content: center;
}
.d1 .text {
flex: 1;
padding: 2%;
}
<div class="d1">
<div class="image-container">
<img src="https://emilythompsonflowers.com/wp-content/uploads/2016/08/hippie-flower-300x300.jpg">
</div>
<div class="text">
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor
in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
</div>
</div>
【问题讨论】:
-
在 Internet Explorer 11 中部分支持 .. 请检查链接:developer.mozilla.org/en-US/docs/Web/CSS/flex-wrap
-
不需要所有这些前缀(甚至 IE11)尝试:
.d1 { display: flex; flex-wrap: wrap; padding: 4%; } .image-container { align-items: center; display: flex; flex: 1 0 auto; justify-content: center; } .d1 .text { flex: 1; padding: 2%; }并查看:stackoverflow.com/questions/36822370/… 仅关于 IE11 中的默认 flex-shrink 值应该是 0 但似乎不是直到重置。一个jsbin来测试IE11的代码修复 -
要注意文本的最小宽度,您可以使用jsbin.com/hozatugece/1/edit?html,css,output 或使用 min-width。
-
flex: 1 0 auto在第一个孩子和flex: 1在第二个似乎工作但现在我面临最后一个问题:即使我使用img {max-height: 100%; max-width: 100%;}图像也不会缩小 -
因为 img 本身为其容器提供了大小。 flex 是为了灵活,基本上使用内容来调整其元素的大小。因此,您要求 img 调整其容器的大小并从中调整大小;)。试试看:jsbin.com/vewuzepuci/1/edit?html,css,output,如果这有助于你找到妥协。
标签: css flexbox internet-explorer-11