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

如何在CSS、Material-UI和React中实现文本不溢出?

问题:卡片标题文本过长时如何自动适配Card宽度,避免超出范围?

当然可行,你只需要去掉Stack上的静态maxWidth限制,让容器自动继承父级Card的宽度即可。

修改后的代码:

<Stack>
  <Tooltip
    title={<Typography variant="body1">{cardTitle}</Typography>}
  >
    <Typography
      variant="h3"
      sx={{
        whiteSpace: "nowrap",
        overflow: "hidden",
        textOverflow: "ellipsis",
        width: "100%"
      }}
    >
      {cardTitle}
    </Typography>
  </Tooltip>
</Stack>

关键说明:

  • 移除Stack的maxWidth: "330px",这样Stack会默认占据父级Card的全部可用宽度,不再受固定值限制
  • 保留Typography上的width: "100%"、whiteSpace: "nowrap"、overflow: "hidden"和textOverflow: "ellipsis",这些样式会让文本在容器宽度范围内自动截断并显示省略号
  • 如果你的Card带有内边距(padding),Stack作为Card的子元素会自动适配内边距后的可用空间,无需额外调整

这样标题文本就会根据Card的实际宽度自动适配,不会超出Card范围,同时Hover时通过Tooltip显示完整标题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 06:35:28