【发布时间】:2021-03-06 19:55:30
【问题描述】:
当使用 Material-UI GridList 时,单元格不会“正确”地包裹在网格中。 在深入研究 css 时,我注意到它使用了 flex-wrap,它假设可以弯曲行,但我确信有一种方法可以使用这个组件,并且可以选择填充所有空格。
代码:
const useStyles = makeStyles((theme) => ({
root: {
display: "flex",
flexWrap: "wrap",
justifyContent: "space-around",
overflow: "hidden",
backgroundColor: theme.palette.background.paper,
paddingTop: theme.spacing(4),
},
gridList: {
width: 500,
height: '100%',
},
listItem: {
borderRadius: theme.borderRadius['secondary'],
overflow: "hidden",
},
}));
function Gallery(props) {
const styles = useStyles();
const cols = [
[2, 2],
[1, 2],
[1, 2],
[2, 1],
[1, 1],
[1, 1],
[1, 1],
];
const renderItem = (tile, index) => (
<GridListTile
classes={{ root: styles.listItem }}
key={tile.image}
cols={cols[index % cols.length][0]}
rows={cols[index % cols.length][1]}
>
<img src={tile.image} alt={tile.title} />
</GridListTile>
);
return (
<div className={styles.root}>
<GridList
cellHeight={160}
className={styles.gridList}
cols={3}
spacing={10}
>
{data.items.map(renderItem)}
</GridList>
</div>
);
}
感谢您的帮助
【问题讨论】:
标签: javascript reactjs material-ui grid