You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Material UI中Paper组件高度无法增大的问题咨询

Material UI Paper组件高度被外层Box限制的问题解决

问题核心:是的,Paper高度无法超过140px的问题,根源就在外层Box的尺寸与布局设置的组合上。

原因分析

外层Box同时设置了height={800}、flexDirection="column"和justifyContent="center":

  • 垂直方向的flex容器在设置固定高度后,justifyContent="center"会让子元素(Paper)在容器内垂直居中。
  • 当所有Paper的总高度超过Box的800px时,justifyContent="center"会优先压缩子元素高度来适配容器空间,而非触发overflow:auto的滚动逻辑,导致你设置的Paper高度200px无法生效,被强制压缩至更小尺寸。

解决方案(保留外层Box的前提下)

有两种可选修改方式:

  1. 调整垂直对齐逻辑
    移除justifyContent="center",或替换为justifyContent="flex-start",让子元素从容器顶部开始排列。此时Paper的高度设置会正常生效,当总高度超过800px时,overflow:auto会自动触发滚动。

  2. 分离居中与滚动容器
    若需保持内容垂直居中的视觉效果,可在外层Box内部嵌套一层容器,用内层容器实现居中,外层Box仅负责滚动和固定高度:

<Box
  height={800}
  overflow={'auto'}
  maxWidth="xl"
>
  <Box
    display="flex"
    flexDirection="column"
    justifyContent="center"
    minHeight="100%"
  >
    {/* 原Paper列表内容 */}
  </Box>
</Box>

修改后的代码示例(方案1)

<Box
  display="flex"
  flexDirection="column"
  justifyContent="flex-start"
  height={800}
  overflow={'auto'}
  maxWidth="xl"
>
  {items.map((item, index) => (
    <Paper
      key={index}
      sx={{ p: 2, height: '200px', width: '75%', margin: '50px auto' }}
    >
      <Typography sx={{ pb: 2 }} textAlign="center">
        {item}
      </Typography>
      <Box>
        <Grid container spacing={2}>
          <Grid item xs={12}>
            {/* 列表项内容 */}
          </Grid>
        </Grid>
        <Button
          variant="outlined"
          key={'addEntry'}
          onClick={addEntry}
          sx={{
            my: 2,
            color: 'white',
            display: 'block',
            fontFamily: 'monospace',
          }}
        >
          +
        </Button>
      </Box>
    </Paper>
  ))}
</Box>

内容的提问来源于stack exchange,提问作者pythonNovice

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 11:37:02