Flexbox 居中在 IE 11 中不起作用
Posted
技术标签:
【中文标题】Flexbox 居中在 IE 11 中不起作用【英文标题】:Flexbox centering not working in IE 11 【发布时间】:2018-12-15 12:52:25 【问题描述】:justify-content
和 align-items
在 IE 11 中使用 center 似乎无法正常工作。在其他浏览器中,它的工作方式与我预期的一样。有人知道解决方法吗?
.box
align-items: center;
display: flex;
flex-direction: column;
justify-content: center;
text-align: center;
.score-wrapper
align-items: center;
display: flex;
justify-content: center;
min-height: 280px;
.overlay-circle
border-radius: 100px;
border: 1px solid red;
fill: transparent;
height: 200px;
position: absolute;
width: 200px;
.center-circle
border-radius: 90px;
border: 1px solid blue;
height: 180px;
position: absolute;
width: 180px;
<div class="box">
<div class="score-wrapper">
<div class="overlay-circle"></div>
<div class="center-circle">
<div class="score">
<p>800</p>
<p>Excellent</p>
</div>
</div>
</div>
【问题讨论】:
Flexbox Not Centering Vertically in IE的可能重复 【参考方案1】:Flexbox is pretty buggy when it comes to IE per CanIUse,其中提到了2个:
在 IE10 和 IE11 中,如果容器具有 min-height 但没有显式的 height 属性,则具有 display: flex 和 flex-direction: column 的容器将无法正确计算其 flexed 子项的大小。查看错误。 IE 11 在使用 min-height 时无法正确垂直对齐项目,请参阅错误话虽如此,添加明确的高度作为 IE11 的 .score-wrapper
的后备。
.box
align-items: center;
display: flex;
flex-direction: column;
justify-content: center;
text-align: center;
.score-wrapper
align-items: center;
display: flex;
justify-content: center;
min-height: 280px;
height: 280px;
.overlay-circle
border-radius: 100px;
border: 1px solid red;
fill: transparent;
height: 200px;
position: absolute;
width: 200px;
.center-circle
border-radius: 90px;
border: 1px solid blue;
height: 180px;
position: absolute;
width: 180px;
【讨论】:
我在 IE 11 上仍然看到相同的结果。但似乎我不应该在 flex 子级上使用absolute
定位,否则它们不会在 flex 布局中。
是和不是。为了设计形状规则可以被打破一点,因为它的hacky无论如何。我在那里发现了一些冗余,但让我仔细看看。以上是关于Flexbox 居中在 IE 11 中不起作用的主要内容,如果未能解决你的问题,请参考以下文章
为什么简单的flexbox居中代码在Safari 5和6中不起作用?
Flexbox 在 Internet Explorer 11 中不起作用