当サイトは、アフィリエイト広告を利用しています
cssのflexboxを使うときにアイテムの高さを揃える方法をメモ。
react + emotionで実装する
フレックスコンテナ内のアイテムのタグが違う場合に
そろわない時がある。
/** @jsxImportSource @emotion/react */import { css } from "@emotion/react";export default function App() {return (<div className="App"><h1 css={[css`text-align:center;`]}>Hello CodeSandbox</h1><div css={[container]}><p css={item}>1111111</p><div css={item}>22</div><h4 css={item}>3333</h4></div></div>);}const container = () => [css`display: flex;justify-content: center;`];const item = () => [css`border :1px solid black;text-align:center;`];const itemContainer = () => [css`display: flex;align-items: center;`];
2パターンの対応方法がある
全部divにすればそろう
全部同じ要素にするとダメな場合は使えない
/** @jsxImportSource @emotion/react */import { css } from "@emotion/react";export default function App() {return (<div className="App"><h1 css={[css`text-align:center;`]}>Hello CodeSandbox</h1><div css={[container]}><div css={item}>1111111</div><div css={item}>22</div><div css={item}>3333</div></div></div>);}const container = () => [css`display: flex;justify-content: center;`];const item = () => [css`border :1px solid black;text-align:center;`];
/** @jsxImportSource @emotion/react */import { css } from "@emotion/react";export default function App() {return (<div className="App"><h1>Hello CodeSandbox</h1><div css={[container]}><div css={[itemContainer]}><p css={item}>1111111</p><div css={item}>22</div><h4 css={item}>3333</h4></div></div></div>);}const container = () => [css`display: flex;justify-content: center;`];const item = () => [css`border :1px solid black;text-align:center;`];const itemContainer = () => [css`display: flex;align-items: center;`];
material UI 公式の Flexbox の説明
Flexbox で高さが揃わない場合の直し方。横並び&中央揃えにする正しい記述