【问题标题】:Overflowing exactly one Grid item in Material-UI在 Material-UI 中恰好溢出一个网格项
【发布时间】:2021-06-14 19:57:15
【问题描述】:

我正在使用 Material-UI 并尝试制作一个包含两个网格项的网格:

  1. 几十个 ListItem 的列表。
  2. 静态控制面板。

这是我开始使用的最小沙箱示例:https://codesandbox.io/s/material-ui-grid-center-vertically-v2-forked-cju60?file=/index.js

在我的理想世界中,我希望第 1 列滚动,第 2 列保持原位。也就是说,父 Grid 的高度将匹配绿色列的高度,而黄色列将溢出到匹配高度的滚动中。

不幸的是,我无法设置网格本身的高度(或最大高度)(使用 style={{maxHeight: "500px", overflow:"scroll"}} 之类的东西,因为这会导致两列滚动。此外,我无法为绿色列设置固定高度,因为用户可以在该列中动态添加和删除选择器。

我正在寻找的功能是否可行?

【问题讨论】:

    标签: reactjs material-ui


    【解决方案1】:

    为了使滚动工作,您必须在父级或黄色网格上的某个地方有一个“固定”高度。否则浏览器不知道在哪里截断滚动条来显示。

    一个简单的选择是在父级上设置height100vh 或任何固定像素),然后让两个子级都采用父级高度的100%

    另一种选择是在黄色网格上有一个max-height100vh,如下例所示)并让父级拥有height: fit-content,因此它与黄色网格和绿色网格的高度完全相同,display: block 应该会自动占用父级中的所有可用空间。

    代码沙盒示例:https://codesandbox.io/s/material-ui-grid-center-vertically-v2-forked-26e75?file=/index.js

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-06-24
      • 1970-01-01
      • 1970-01-01
      • 2021-05-24
      • 2018-11-17
      • 2019-12-27
      • 2020-03-12
      相关资源
      最近更新 更多