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

Material-UI ListItem设置alignItems='flex-start'不生效如何解决?

你现在的写法存在两处问题:

  • alignItems属性控制的是flex布局交叉轴(默认是垂直方向)的对齐规则,你设置flex-start只能让元素垂直靠上排列,不影响水平方向的排列逻辑。要实现水平左对齐,你需要给ListItem设置justifyContent="flex-start"。
  • ListItemText组件默认自带flex: 1 1 auto的样式,会自动占满剩余的可用宽度,你放两个ListItemText就会平分ListItem的水平空间,自然会出现均匀分布的效果。

修改可参考以下两种方案:

方案1:不需要ListItemText内置样式

如果你不需要用到ListItemText的内置排版、边距等特性,直接替换成普通文本元素即可:

<List>
  <ListItem justifyContent="flex-start">
    <span>First Element </span>
    <span> Second Element</span>
  </ListItem>
</List>

方案2:需要保留ListItemText特性

如果你必须使用ListItemText的相关特性,覆盖它的默认flex属性即可,可以用sx属性快速修改:

<List>
  <ListItem justifyContent="flex-start">
    <ListItemText primary="First Element " sx={{ flex: "none" }} />
    <ListItemText primary=" Second Element" sx={{ flex: "none" }} />
  </ListItem>
</List>

修改后两个ListItemText就不会自动撑宽,会按照内容宽度排列,同时justifyContent="flex-start"保证所有内容整体靠左对齐,即可达到预期效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 05:24:04