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

如何在Material UI的Box组件中添加标题,让标题显示在数值上方?

Material UI Box组件添加上方标题的实现方法

你当前代码里标题和价格横向并排,是因为作为行内元素的外层Box没有设置纵向排列规则,按以下调整即可实现标题在价格上方的效果:

核心调整点

  • 给外层包裹的Box添加纵向flex布局属性,强制内部元素从上到下垂直排列
  • 将原本直接写在Box里的「Nifty」「Sensex」文本单独包裹为独立元素,可单独配置标题样式
  • 给标题和价格区域设置合理间距,做样式层级区分

调整后可直接使用的代码

<Grid item sm={6}> 
<Box 
  component="span" 
  sx={{ 
    p: 2, 
    border: 3,
    borderColor: 'error.main',
    display: 'flex',
    flexDirection: 'column',
    gap: 1 // 控制标题和价格之间的间距,可根据需求调整数值
  }}
>
  {/* 标题部分 */}
  <Box sx={{ fontWeight: 600, fontSize: '0.95rem' }}>
    Nifty
  </Box>
  {/* 价格数值部分 */}
  <Box sx={{ fontSize: '1.2rem' }}>
    {row.data.price}
  </Box>
</Box>
</Grid>

<Grid item sm={6}> 
<Box 
  component="span" 
  sx={{ 
    p: 2, 
    border: 3,
    borderColor: 'error.main',
    display: 'flex',
    flexDirection: 'column',
    gap: 1
  }}
>
  <Box sx={{ fontWeight: 600, fontSize: '0.95rem' }}>
    Sensex
  </Box>
  <Box sx={{ fontSize: '1.2rem' }}>
    {/* 注意替换为Sensex对应的数据源,原代码两个价格都取了row.data.price */}
    {row.data.price}
  </Box>
</Box>
</Grid>

优化建议

如果想要更贴合Material UI的设计规范,可以直接用内置的Typography组件渲染标题,不需要手动配置字号字重,会自动匹配项目主题样式,示例:

import Typography from '@mui/material/Typography';

// 替换原来的标题Box即可
<Typography variant="subtitle2" fontWeight="bold">
  Nifty
</Typography>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 02:27:14