IE 11 中的 Flex 项目不占用图像子项的高度
Flex item not taking height of image child in IE 11
我正在尝试这个:
html,body{
background-color: black;
margin: 0;
padding: 0;
}
.wp {
margin: 20px auto;
width: 300px;
}
.a {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-orient: vertical;
-webkit-box-direction: normal;
-ms-flex-direction: column;
flex-direction: column;
-webkit-box-pack: justify;
-ms-flex-pack: justify;
justify-content: space-between;
border: 2px solid red;
}
.ai {
width: 100%;
}
.im {
outline: 2px solid yellow;
}
<div class="wp">
<div class="a">
<div class="ai">
<img class="im" width="100%" src="https://www.nasaspaceflight.com/wp-content/uploads/2018/10/2018-10-22-13_27_15-Window.jpg">
</div>
</div>
</div>
我在 EDGE 和 IE 11 中得到不同的结果:
图中左边是EDGE,右边是IE11
我尝试按照 Flexbugs 的建议将 img
包含在 div
中,但我得到了相同的结果。
关于如何修复 IE11 版本的任何想法?
IE 中的 Flex 问题是一个常见问题,而且,display: flex;
并不是一个广泛涉及的问题 属性。尝试以下选项:
.a { flex: 1; }
或 parent.
.wp { width: 100%; } // or 80%
这应该可以解决问题。
如果您想保持 .wp
300 像素,请尝试以下操作。为 .wp
添加一个额外的 parent 并将其设置为 300px 并将 .wp
设置为 100%:
HTML
<div class="wp-parent">
<div class="wp">
<div class="a">
<div class="ai">
<img class="im" width="100%" src="/2018-10-22-13_27_15-Window.jpg">
</div>
</div>
</div>
</div>
CSS
.wp-parent {
width: 300px;
}
.wp {
width: 100%;
}
在这种情况下,IE11 的问题似乎是弹性项目 (.ai
) 在渲染过程中占用了图像的固有高度 (877px),然后停止响应。
width: 100%
命令将图像缩放得更小,似乎是在 flex 项目调整大小之后出现的,但 IE11 已经完成了。
我会使用 flex-direction: row
来解决这个问题。
此外,要删除图像下方的小间隙,请参阅此 post:
我正在尝试这个:
html,body{
background-color: black;
margin: 0;
padding: 0;
}
.wp {
margin: 20px auto;
width: 300px;
}
.a {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-orient: vertical;
-webkit-box-direction: normal;
-ms-flex-direction: column;
flex-direction: column;
-webkit-box-pack: justify;
-ms-flex-pack: justify;
justify-content: space-between;
border: 2px solid red;
}
.ai {
width: 100%;
}
.im {
outline: 2px solid yellow;
}
<div class="wp">
<div class="a">
<div class="ai">
<img class="im" width="100%" src="https://www.nasaspaceflight.com/wp-content/uploads/2018/10/2018-10-22-13_27_15-Window.jpg">
</div>
</div>
</div>
我在 EDGE 和 IE 11 中得到不同的结果:
图中左边是EDGE,右边是IE11
我尝试按照 Flexbugs 的建议将 img
包含在 div
中,但我得到了相同的结果。
关于如何修复 IE11 版本的任何想法?
IE 中的 Flex 问题是一个常见问题,而且,display: flex;
并不是一个广泛涉及的问题 属性。尝试以下选项:
.a { flex: 1; }
或 parent.
.wp { width: 100%; } // or 80%
这应该可以解决问题。
如果您想保持 .wp
300 像素,请尝试以下操作。为 .wp
添加一个额外的 parent 并将其设置为 300px 并将 .wp
设置为 100%:
HTML
<div class="wp-parent">
<div class="wp">
<div class="a">
<div class="ai">
<img class="im" width="100%" src="/2018-10-22-13_27_15-Window.jpg">
</div>
</div>
</div>
</div>
CSS
.wp-parent {
width: 300px;
}
.wp {
width: 100%;
}
在这种情况下,IE11 的问题似乎是弹性项目 (.ai
) 在渲染过程中占用了图像的固有高度 (877px),然后停止响应。
width: 100%
命令将图像缩放得更小,似乎是在 flex 项目调整大小之后出现的,但 IE11 已经完成了。
我会使用 flex-direction: row
来解决这个问题。
此外,要删除图像下方的小间隙,请参阅此 post: