CSS Flexbox Playground

flexboxレイアウトをインタラクティブに構築・可視化できます。コンテナと要素のプロパティを調整してライブプレビューで確認しましょう。

動作方法: コンテナと要素のプロパティを調整してflexboxレイアウトを構築します。プレビューで変更がすぐに反映されます。準備ができたら生成されたCSSをコピーできます。

12px
1
2
3
.container {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  align-content: stretch;
  gap: 12px;
}

CSS Flexboxとは

CSS Flexbox(Flexible Box Layout)は、アイテムを行または列に配置するための1次元レイアウト手法です。強力なアライメント機能と動的なスペース配分を提供し、コンポーネントレイアウト、ナビゲーションバー、レスポンシブデザインに最適です。

Flexbox Playgroundの使い方

まずコンテナのプロパティを調整します。flex-directionはメイン軸の方向を、justify-contentはそこでのスペース配分を、align-itemsはクロス軸での子要素の位置を制御します。子要素を追加・削除したり、flex-grow、flex-shrink、flex-basisを個別にカスタマイズして、利用可能なスペースへの応答を確認できます。

FlexboxとCSS Grid

Flexboxは1次元レイアウト向け設計で、行または列のいずれかです。CSS Gridは行と列の両方を同時に扱う2次元レイアウトに対応しています。コンポーネントレベルのレイアウト(ナビゲーションバー、カード行、フォームコントロール)にはFlexboxを、ページレベルのレイアウトにはGridを使用するとよいでしょう。両者は組み合わせて使用できます。

Flexboxの一般的なパターン

  • センタリングコンテンツ:justify-contentとalign-itemsをcenterに設定
  • サイドバーレイアウト:1つの要素を固定幅、もう1つをflex-grow: 1に設定
  • ナビゲーションバー:row directionでspace-betweenを使用
  • Holy Grail:ネストされたflexを使用してヘッダー、フッター、3列のボディを配置
  • 等幅カラム:すべての子要素にflex: 1を設定
  • レスポンシブラップ:flex-wrapとパーセンテージベースのflex-basisを使用