html - Edge/IE flex 和滚动条问题

标签 html css flexbox scrollbar microsoft-edge

我在使用 flexbox 时遇到了 Edge/IE 的问题。内容可能会溢出,所以我使用overflow-x:auto。 Flex 方向是列,内容项上有 flex-grow:1,因此不需要 overflow-y。但是滚动条超出了内容。它似乎在考虑滚动条之前计算了元素的高度。只有在使用 flex-direction column, row 时才会出现此问题。

这是一个 jsfiddle,其中包含用于 overflow-x 和 -y 的滚动/自动/隐藏的不同组合:https://jsfiddle.net/o1pv3b4o/5 .

  • overflow-x:autooverflow-y:hidden:水平滚动条隐藏内容。
  • overflow-x: scroll:解决了问题,它在考虑滚动条的同时正确计算了高度。但内容可能不会溢出,从而显示禁用的滚动条。
  • overflow-x: auto:在使用 overflow-y: scroll|auto 时有效。但在这两种情况下,它都会显示禁用的垂直滚动条。

有没有办法让它在不显示不必要的滚动条的情况下正确计算高度?

这是一个示例 HTML:

<div class='ctnr'>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
</div>

和 CSS:

.ctnr {
  display: flex;
  flex-flow: column wrap;
  background: orange;
  width: 400px;
  height: 225px;
  margin: 1rem;
  overflow-x: auto;
  overflow-y: hidden;
}
.ctnr div {
  min-height: 80px;
  flex: 1 1 auto;
  width: 45%;
  margin: 0;
  border: 1px solid blue;
  background: lightblue;
}

最佳答案

这是边缘的解决方案。感谢 Robin Rendle

html {
  -ms-overflow-style: -ms-autohiding-scrollbar;
}

关于html - Edge/IE flex 和滚动条问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40024840/

相关文章:

javascript - jQuery 附加到动态创建的子 div

html - Flexbox 代码适用于除 Safari 之外的所有浏览器。为什么?

css - 删除带有包裹子项的 flexbox 上的额外间距?

html - 如何扩展 React 组件以使用 Flexbox 填充页面

javascript - 如何在 IE11 中使用 css 垂直拉伸(stretch) span 到其父元素 <td>

html - 为什么只有部分单元格顶部对齐?

javascript - 如何将 Bootstrap 导航菜单设置为在滚动时保持在页面顶部

html - 在 Nokogiri 中选择变体

html - 如何找到具有全范围字体粗细的网络字体?

jquery - jquery如何让背景图片淡入