Flexbox
ボックスのレイアウト方法を定めるcssの機能
コンテナにアイテムの幅/高さ(および順序)を変更して、使用可能なスペースを最適に埋めることができるようにすること
用途
向いてる
Component コンポーネント codeの実装
小規模のLayout レイアウト css
向いてない
大規模なLayout レイアウト css
代わりにGrid Layout使う
基本要素
https://gyazo.com/f6c5f4f6852dd5a5c8727c080dd2c734
全体イメージ
flex container
子:flex items
direction
主軸 main axis
main start
main end
副軸 交差軸 cross axis
cross start
cross end
size
widthやheightで範囲決める
main size
cross size
flex container
display:flex or display:inline-flex
flex containerの定義
flex-direction
主軸の変更
flex-wrap
アイテムを複数行で折り曲げるか決める
flex-flow
flex-directionとflex-wrap
gap
子の隙間定義できる
便利
子にmargin css当てなくてよい
子が1つなら、適用されない
flex item
order
論理構造(HTML)と見た目(CSS)の順番を変えたい時に利用
flex-grow
itemが占めるflex container内の使用可能なスペースの量を決定
flex-shrink
必要に応じてitemaを縮小する機能を定義
flex-basis
参考
A Complete Guide to Flexbox | CSS-Tricks
分かりやすい!おすすめ
philipwalton/flexbugs: A community-curated list of flexbox issues and cross-browser workarounds for them.
Understanding flex-grow, flex-shrink, and flex-basis | CSS-Tricks
https://www.joshwcomeau.com/css/interactive-guide-to-flexbox/
Interactiveでわかりやすい