Material UI Grid全宽子项时alignItems:flex-start仅首行生效问题求助
Material UI Grid子项顶部对齐,剩余空间留底部解决方案
问题描述
使用Material UI Grid组件创建固定高度(如200px)的容器,子项均设为全宽,需要子项从容器顶部开始填充,剩余空间仅留在容器底部,但当前设置导致子项垂直居中,上下都有空隙。
预期效果:
实际效果:
原代码:
<Grid container xs={12} justifyContent="center" alignItems="flex-start" css={css` height: 200px; background-color: #aaa; `} > <Grid xs={12}>first row</Grid> <Grid xs={12}>second row</Grid> <Grid xs={12}>third row</Grid> </Grid>
解决方法
问题核心是justifyContent="center"导致子项在垂直主轴方向居中分布,只需将justifyContent改为flex-start即可让子项从顶部排列,剩余空间自动留在底部。
修改后的代码:
<Grid container xs={12} justifyContent="flex-start" alignItems="flex-start" css={css` height: 200px; background-color: #aaa; `} > <Grid xs={12}>first row</Grid> <Grid xs={12}>second row</Grid> <Grid xs={12}>third row</Grid> </Grid>
原理说明
当Grid子项均为xs={12}时,容器默认采用垂直列布局,主轴方向为垂直方向。此时justifyContent控制主轴方向的对齐方式:
center:子项在垂直方向居中,上下产生空隙flex-start:子项从垂直方向起点(容器顶部)开始排列,剩余空间自然留在底部
内容的提问来源于stack exchange,提问作者famdude
相关产品推荐
相关产品推荐

