试图让 Material-UI 裁剪的抽屉在 flex 布局中工作

ric*_*ick 2 drawer material-ui

我从剪辑的抽屉示例代码开始,并尝试围绕它进行构建。在样本中插入组件时(即,将“{'你认为水移动得很快?你应该看到冰。'}替换为其他内容),内容受到抽屉高度的限制。尝试在示例之外插入内容时,所有内容都从抽屉下方开始。

预期行为:能够将内容放置在抽屉周围的任何位置。我有不同的组件根据抽屉菜单选择隐藏/变得可见

我最初是从永久抽屉示例开始的,除了我需要将抽屉定位在应用程序栏下方之外,一切都很好。

Luk*_*vey 6

布局由一个包含Drawer主要内容区域的 flex 容器组成。内容区域 ( .appContent) 扩展以填充抽屉右侧(或左侧)的空间。您的所有内容都应放置在此元素内。

更新:固定样式可用于 IE 11

基本结构:

<div className={classes.root}>
  <AppBar position="fixed" className={classes.appBar} />
  <Drawer 
    variant="permanent"
    className={classes.drawer}
    classes={{ paper: classes.drawerPaper }} 
  />
  <main className={classes.appContent}>
    {/* Page content goes here */}
  </main>
</div>
Run Code Online (Sandbox Code Playgroud)

款式

const styles = theme => ({
  // The main flex container for the app's layout. Its min-height
  // is set to `100vh` so it always fill the height of the screen.
  root: {
    display: "flex",
    minHeight: "100vh",
    zIndex: 1,
    position: "relative",
    overflow: "hidden",
  },
  appBar: {
    zIndex: theme.zIndex.drawer + 1
  },
  // Styles for the root `div` element in the `Drawer` component.
  drawer: {
    width: theme.layout.drawerWidth
  },
  // Styles for the `Paper` component rendered by `Drawer`.
  drawerPaper: {
    width: "inherit",
    paddingTop: 64  // equal to AppBar height (on desktop)
  },
  // Styles for the content area. It fills the available space
  // in the flex container to the right (or left) of the drawer.
  appContent: theme.mixins.gutters({
    // https://github.com/philipwalton/flexbugs#flexbug-17
    flex: '1 1 100%', // Updated to fix IE 11 issue
    maxWidth: "100%",
    paddingTop: 80,   // equal to AppBar height + 16px
    margin: '0 auto',
    // Set the max content width for large screens
    [theme.breakpoints.up('lg')]: {
      maxWidth: theme.breakpoints.values.lg,
    },
  })
Run Code Online (Sandbox Code Playgroud)

实时示例(代码沙盒)

永久抽屉 - 夹在应用栏下方

永久抽屉 - 全高