【问题标题】:Separate vertically elements with space between in Material UI drawer在 Material UI 抽屉中用空格分隔垂直元素
【发布时间】:2020-07-25 20:54:54
【问题描述】:

我使用 Material UI(图片左侧)实现了以下抽屉。我想将抽屉中的最后一个元素粘在它的底部,如图右侧所示。为此,我尝试了许多方法,例如使用Grid 组件、Box 和带有flex-box 参数的divs,但没有任何效果。我怎样才能做到这一点?目前,我对抽屉内容的实现是这样的:

  <Grid container spacing={0} direction="column" alignItems="start" justify="space-between" alignContent='space-between'>
    <Grid item xs={12}>
      <Divider />
      <CardHeader
        ...
      />
      <Divider />
      <List>
        <...>
      </List>
      <Divider />
      <List>
        <...>
      </List>
    </Grid>
    <Grid item xs={12}>
      <Divider />
      <CardHeader
        avatar={
          <Avatar aria-label="recipe" className={classes.avatar}>
            Z
          </Avatar>
        }
        title="ZaraHealth"
        subheader="v. 0.1"
      />
    </Grid>
  </Grid>

任何评论都会有所帮助!

【问题讨论】:

    标签: reactjs material-ui


    【解决方案1】:

    Flexbox 就是解决方案。这是一个带有简单 div 的简化版本,因此您可以将此解决方案映射到您的解决方案

    .sidebar {
      height: calc(100vh - 60px); // if topbar is 60px in height
      width: 320px;
      display: flex;
      flex-direction: column;
      background-color: #ccc;
      justify-content: space-between;
    }
    <div class="sidebar">
      <div class="top-nav">
        <ul>
          <li>Item1</li>
          <li>Item2</li>
          <li>Item3</li>
        </ul>
    
      </div>
    
      <div class="bottom-nav">
        <ul>
          <li>Item1</li>
        </ul>
      </div>
    
    </div>

    【讨论】:

    • 这很好,Zohaib!谢谢!但是,仍然有一个警告:如果我将父 div 的高度设置为100vh,它不会考虑顶部应用栏的高度,它会产生一些溢出,导致抽屉可滚动。有没有办法考虑appbar?我尝试手动调整高度(例如92vh),但网站的移动版比例不同,无法使其在桌面和移动版中都看起来不错。
    • @pitazzo 不要硬编码 hieght ,如果 60px 是顶栏的高度,请使用 calc(100vh - 60px);。您可以使用媒体查询根据顶栏的高度设置不同的高度。我已经更新了答案
    猜你喜欢
    • 1970-01-01
    • 2020-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-28
    • 1970-01-01
    • 2021-04-30
    • 1970-01-01
    相关资源
    最近更新 更多