IE11 CSS 显示 flexbox 内溢出的行内块

IE11 CSS display inline-block overflowing inside flexbox

我在 flex-box 中使用了一个包含大量内容的内联块元素,出于某种原因,Internet Explorer 11 不会包装此元素的内容,而是将 flexbox 推出屏幕。它在 Chrome 和 FireFox 中呈现良好。

我的问题示例:https://codepen.io/anon/pen/YVboBX

<div class="page">
  <main>
    <radio-widget>
      <layout-container>
        <section class="icon">X</section>
        <section class="content">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce in ipsum id lectus egestas scelerisque sit amet ut libero. Nam luctus turpis nisi, ut mollis libero sodales eu. Donec ante ante, venenatis non sodales sed, venenatis id lacus. In ante
          risus, lobortis et ligula eget, commodo euismod risus. Ut sem orci, ultrices eu finibus vel, aliquam et quam. Nunc bibendum sodales libero et pulvinar. Cras porta feugiat lorem, vitae pretium augue fringilla et. Vestibulum dui lacus, ultrices
          a ante et, euismod hendrerit ligula. Sed non urna ipsum. Fusce eget massa ex. Phasellus ac tempor ligula. Nullam sagittis dignissim ipsum, non commodo tellus luctus in. Etiam eget eleifend ex.
        </section>
      </layout-container>
    </radio-widget>
  </main>
  <aside> a side</aside>
</div>

CSS

div.page {
  display: flex;
  flex-direction: row;
}

main {
  flex-grow: 1;
  flex-shrink: 1;
}

aside {
  flex-grow: 0;
  flex-shrink: 0;
  flex-basis: 5em;
}

radio-widget {
  display: inline-block;
}

layout-container {
  display: flex;
}

section.icon {
  flex-shrink: 0;
  flex-grow:0;
  flex-basis: 5em;
}

section.content {
  flex-shrink: 1;
  flex-grow:1;
}

我已经尝试了以下(可能的)修复方法,但这并没有解决我的问题: IE CSS display: inline-block Rendering issue

在 IE11 中,弹性元素必须定义某种宽度。将此添加到您的代码中:

main {
  flex-grow: 1;
  flex-shrink: 1;
  width: 100%;              /* NEW */
}

radio-widget {
  display: inline-block;
  max-width: 100%;          /* NEW */
}

revised demo

参考文献: