一、现貌
我有一个带有 4 个网格项目的 Material UI 网格容器。在每个 Grid 项中都有一个 Typography 组件,其中包含一个标题和一个带有一些内容的 Card,如下所示:
2. 期望的外观
我希望卡片填充网格项目的剩余高度而不超过它。这是我想要的输出:
3.外观不良(卡高=100%)
我曾尝试将卡片的高度设为 100%,但这意味着每张卡片都采用其父级(网格项)的高度,并且父级的高度 = 版式 + 卡片(而不是剩余空间减去版式),所以结果是 Card 然后超过了父 Grid 项目的高度,如下所示:
克服这个问题的最佳方法是什么?我正在使用 Material UI 的 Grid 使断点变得简单并与我的项目的其余部分保持一致,因此理想情况下,解决方案将使用这种方法。
这是代码:
import React from 'react';
const useStyles = makeStyles(theme => ({
// stretch: { height: '100%' }, // Un-commenting this results in undesirable appearance 3 (see image 3 above)
outline: { border: '1px solid red' },
}));
const Sections= () => {
const classes = useStyles();
return (
<Grid container spacing={3} justify="space-between" alignItems="stretch" className={classes.outline}>
<Grid item xl={2} lg={2} md={6} xs={12} className={classes.outline}>
<Typography className={classes.outline}>Big title 1</Typography>
<Card className={classes.stretch}><CardContent>Lots and lots and lots and lots and lots and lots of content</CardContent></Card>
</Grid>
<Grid item xl={4} lg={4} md={6} xs={12} className={classes.outline}>
<Typography className={classes.outline}>Big title 2</Typography>
<Card className={classes.stretch}><CardContent>Not much content</CardContent></Card>
</Grid>
<Grid item xl={3} lg={3} md={6} xs={12} className={classes.outline}>
<Typography className={classes.outline}>Big title 3</Typography>
<Card className={classes.stretch}><CardContent>Not much content</CardContent></Card>
</Grid>
<Grid item xl={3} lg={3} md={6} xs={12} className={classes.outline}>
<Typography className={classes.outline}>Big title 4</Typography>
<Card className={classes.stretch}><CardContent>Not much content</CardContent></Card>
</Grid>
</Grid>
);
};
export default Sections;
非常感谢,
凯蒂