我希望使用 React 中的 Material UI 制作多个滚动列。在使用 flex 在 bootstrap 中实现过一种方法,但无法转换到 Material UI 中。我已经组合了一个示例来实现它,但这种方式很糟糕,需要知道你要滚动内容的上方的大小(在此示例中为 AppBar)。
https://codesandbox.io/s/pmly895mm
html,
body {
margin: 0;
height: 100%;
}
#root {
height: 100%;
}
.grid-container {
height: calc(100% - 64px);
}
.grid-column {
height: 100%;
overflow-y: auto;
}
在此演示中,我将所有高度设置为100%(html,body,#root),然后创建了两个类 grid-container
,其高度为100%- AppBar 高度,以及grid-column
,其高度为100%并且具有自动的overflow-y。在Bootstrap中,我将分别应用这些类于
row
和column
元素。.flex-section {
flex-grow: 1;
display: flex;
flex-direction: column;
min-height: 0;
}
.flex-col-scroll {
flex-grow: 1;
overflow: auto;
min-height: 100%;
}
对于元素上方的内容,由于 flex 可以处理高度,所以它并不重要。
具体来说,我想避免使用 height: calc(100% - 64px)
,因为这需要我事先知道元素的高度。在某些页面中,我想在滚动区域上方放置一些具有动态高度内容的内容。