Open1
【Material-ui】gridデザインの実装
概要
Material-UIを用いて、gridデザインでコンポーネント作成をしてみる
やったこと
container, itemの基本的な使いかたと、サイズ指定(xsなど)をし想定の構成をつくってみる
目標
こんな感じのgridデザインを作る

結論
以下のコードで目標のレイアウトが作成できる
sample
import React from 'react';
import { makeStyles, createStyles, Theme } from '@material-ui/core/styles';
import Paper from '@material-ui/core/Paper';
import Grid from '@material-ui/core/Grid';
const useStyles = makeStyles((theme: Theme) =>
createStyles({
root: {
flexGrow: 1,
},
paper: {
padding: theme.spacing(2),
textAlign: 'center',
color: theme.palette.text.secondary,
},
}),
);
export default function CenteredGrid() {
const classes = useStyles();
return (
<div className={classes.root}>
<Grid container spacing={3}>
<Grid item xs={12}>
<Paper className={classes.paper}>xs=12</Paper>
</Grid>
<Grid item xs={6}>
<Paper className={classes.paper}>xs=6</Paper>
</Grid>
<Grid item xs={6}>
<Paper className={classes.paper}>xs=6</Paper>
</Grid>
<Grid item xs={3}>
<Paper className={classes.paper}>xs=3</Paper>
</Grid>
<Grid item xs={3}>
<Paper className={classes.paper}>xs=3</Paper>
</Grid>
<Grid item xs={3}>
<Paper className={classes.paper}>xs=3</Paper>
</Grid>
<Grid item xs={3}>
<Paper className={classes.paper}>xs=3</Paper>
</Grid>
</Grid>
</div>
);
}
注意点
- 親となるGridにcontainerのattributeを記述する
- 子となるGridにitemのattributeを記述する
- 一行のサイズ合計を12(xs=の数値)とする
※子要素内で更に分割したい場合、Gridで囲い親にcontainerの記述をしてあげる
参考サイト