带有对齐项目的 IE11 flex 包装器禁用 flex 列子项的滚动

IE11 flex wrapper with align-items disable scroll for flex column child

当弹性列具有最大高度并包含在弹性容器中时,如何为弹性列子启用滚动?

我这里有一个例子https://codepen.io/ChatduChesire/pen/vYKVJoR

.modal-wrapper 包含 align-items:center;align-items 的任何其他值时,在 IE11 中没有 .modal-content 的滚动,当我删除 align-items 时一切正常美好的。我需要 .modal 溢出时高度有限,但溢出时不流动。

我建议您尝试将 .model 中的 overflow: hidden; 替换为 overflow: auto; class 将有助于解决 IE 11 浏览器中的问题。

.modal-overlay {
  position: fixed;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
}

.modal-wrapper {
  display:flex;
  align-items:center;
  height: 100%;
}

.align-top {
  align-items: flex-start;
}

.modal {
  display: flex;
  flex-direction: column;
  flex: 1;
  max-height: 25%;
  border: 1px solid red;
  overflow: auto;
}

.modal-content {
  flex: 1 1 auto;
  overflow: auto;
  min-height:0;
}
.header, footer {
  flex: 0 0 auto;
}
<div class="modal-overlay">
<div class="modal-wrapper">
  <div class="modal">
    <header>Header</header>

    <div class="modal-content">
    
        <ul>
          <li>Item</li>
           <li>Item</li>
          <li>Item</li>
          <li>Item</li>
          <li>Item</li>
          <li>Item</li>
          <li>Item</li>
          <li>Item</li>
            <li>Item</li>
          <li>Item</li>
          <li>Item</li>
          <li>Item</li>
          <li>Item</li>
          <li>Item</li>
          <li>Item</li>
          <li>Item</li>
            <li>Item</li>
          <li>Item</li>
          <li>Item</li>
          <li>Item</li>
          <li>Item</li>
          <li>Item</li>
          <li>Item</li>
          <li>Item</li>
            <li>Item</li>
          <li>Item</li>
          <li>Item</li>
          <li>Item</li>
          <li>Item</li>
          <li>Item</li>
          <li>Item</li>
          <li>Item</li>
        </ul>
    
    </div>
    <footer>Footer</footer>
  </div>
</div>
</div>

在 IE 11 浏览器中的输出:

  • 列表元素多时输出(会显示滚动条)。

  • 当元素较少或只有一个时输出(正确显示高度)。