Flexbox 居中在 IE 11 中不起作用

Posted

技术标签:

【中文标题】Flexbox 居中在 IE 11 中不起作用【英文标题】:Flexbox centering not working in IE 11 【发布时间】:2018-12-15 12:52:25 【问题描述】:

justify-contentalign-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 中不起作用

flex 属性在 IE 中不起作用

堆叠的 flexbox 垂直居中在 chrome 中不起作用

CSS flexbox 在 IE10 中不起作用

使用弹性框的居中按钮在 IE 中不起作用 [重复]