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

如何使用Material-UI和CSS实现标题在黑盒内顶部水平对齐

解决方案

你现有代码的问题是注释掉的h1如果直接放在Grid容器内,会被列方向的Grid布局识别为第一个子元素,自然占用垂直高度,无法实现悬浮在容器顶部的效果。优化方案如下:

  • 给外层的容器设置相对定位,作为标题的定位参照
  • 标题使用绝对定位脱离文档流,就不会占用额外垂直空间,同时可以固定在顶部居中位置

修改后的代码示例:

<Box m={3} sx={{ position: 'relative' }}>
  {/* 新增顶部居中标题,脱离文档流不占垂直空间 */}
  <h1 
    sx={{
      position: 'absolute',
      top: 0,
      left: '50%',
      transform: 'translateX(-50%)',
      margin: 0,
      color: '#fff', // 可根据实际需求调整文字颜色
      fontSize: '24px' // 可自定义字号
    }}
  >
    Hello John Joseph Jones
  </h1>
  <Grid
    container
    direction="column"
    className={classes.container}
    spacing={2}
  >
    <Grid item xs={6} className={classes.pictureSection}>
      <div className={classes.imageSection}>
        <img
          src="https://picsum.photos/id/237/200/300"
          className={classes.img}
          alt="no pic"
        />{" "}
        <p className={classes.precinctNo}>PR&nbsp; 4838390</p>
        <p className={classes.controlNo}>555555</p>
      </div>
    </Grid>

    <Grid item xs={6} className={classes.nameAddressSection}>
      <Box className={classes.fontText}>John Joseph Jones</Box>

      <Box mt={1} className={classes.fontText}>
        26 South Hawthorne Drive Tonawanda, NY 14150
      </Box>

      <Box mt={1}>
        <QRCode size={80} value={"4234432"} />
      </Box>
    </Grid>
  </Grid>
</Box>

如果你使用的是旧版本MUI的makeStyles方案,把标题的样式写到对应的classes里即可,效果一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 23:06:03