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

如何用flexbox使Material UI Stack的Item 2满宽且不使用width:100%?

解决Material UI中让指定Item占满父容器宽度的方法(不使用width:100%)

原代码里的Stack组件默认是垂直方向的flex容器,且设置了alignItems="flex-start",这会让所有子Item仅按自身内容宽度显示,无法占满父容器水平空间。

要实现让<Item>Item 2</Item>占满父容器宽度且不使用width: 100%,可以借助flexbox的alignSelf属性:

  • 给目标Item添加sx={{ alignSelf: 'stretch' }}配置
  • 原理:在垂直方向的flex容器中,交叉轴为水平方向,alignSelf: 'stretch'会强制该子元素在交叉轴方向拉伸至父容器的宽度,完全遵循flexbox布局规则

完整代码示例:

<Box sx={{ width: '100%' }}>
  <Stack spacing={2} alignItems="flex-start">
    <Item>Item 1</Item>
    <Item sx={{ alignSelf: 'stretch' }}>Item 2</Item>
    <Item>Item 3</Item>
  </Stack>
</Box>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 04:39:55