実現したいこと
Rails × ReactでWebアプリケーションを作成しています。
Material-UIを導入しており、Gridで正方形のGridを作成したいのですがうまくいきません。
前提
Ruby on Rails
React (TypeScript)
Material-UI
発生している問題・エラーメッセージ
Gridでは横幅を等幅にすることはできますが、Gridのitemを横幅=高さにかんたんにすることができません。
こちらの記事CSSだけで縦横比固定のトリミングされたサムネイルをつくる【内接・外接リサイズ】を参考にCSSで対応しましたが、GridのItemの中身にテキスト要素があるためheight=0にすることで、そのテキスト要素に影響してしまいます。
以下tsxファイル内のCSS該当部分
CSS
1aaaButton: { 2 display: "block", 3 margin: theme.spacing("auto", "auto"), 4 width: "100%", 5 textAlign: "center", 6 boxShadow: "none", 7 //以下を追加 8 height: 0, 9 paddingBottom: '100%', 10 }, 11
以下同ファイル内のreturn内のTypeScript部分
TypeScript
1<Grid container alignItems="stretch"> 2 <Grid 3 item 4 sm={4} 5 xs={3} 6 direction="row" 7 justify="flex-start" 8 alignItems="flex-start" 9 > 10 <Button 11 className={classes.aaaButton} 12 variant="contained" 13 > 14 <Typography 15 style={{fontSize: "0.8rem", fontWeight: "bold", marginRight: 3, marginTop: "auto"}}> 16 {xxx.aaa_name} 17 </Typography> 18 </Button> 19 </Grid> 20</Grid>
#####以下PC画像
中身が中心に来ず上に来てしまいます。
#####以下スマホ画像
中身のTypographyが長い時は、itemの高さを中身に合わせて可変にして長方形にしたいです。
試したこと
Gridのitemは、正方形にはなるものの、itemの中身のTypographyが正方形の中心に来ません。marginTop: "auto"
を指定しても効きません。。。
補足情報(FW/ツールのバージョンなど)
正方形を作るのに他の方法、またはこの方法で中身に影響しない方法があればご教授いただけると嬉しいです。
ここにより詳細な情報を記載してください。
あなたの回答
tips
プレビュー