CSS Flexbox プレイグラウンド
リアルタイムのビジュアルプレビュー、アイテムごとのコントロール、実用的なレイアウトプリセット(ホーリーグレイル、カードグリッド、ナビゲーションバー、モーダル)、およびワンクリック CSS エクスポートを備えたインタラクティブな CSS Flexbox プレイグラウンドです。リアルタイムで実験しながら、flex-direction、justify-content、align-items、gap などを学びましょう。
広告ブロッカーにより広告が表示できません
MiniWebtool は広告収益で無料提供しています。このツールが役に立ったら、Premium(広告なし+高速)をご利用いただくか、MiniWebtool.com を許可リストに追加して再読み込みしてください。
- または Premium(広告なし)にアップグレード
- MiniWebtool.com の広告を許可してから再読み込みしてください
CSS Flexbox プレイグラウンド
CSS Flexbox プレイグラウンドは、現代的な CSS Flexible Box Layout モジュールのためのインタラクティブな学習環境およびコードジェネレーターです。コンテナのプロパティ(flex-direction、justify-content、align-items、gap)やアイテムごとのプロパティ(flex-grow、flex-shrink、flex-basis、align-self、order)を調整し、レイアウトがリアルタイムで更新されるのを確認できます。気に入ったものができたら、すぐに貼り付けられる CSS と HTML をプロジェクトに直接コピーしてください。
CSS Flexboxとは何ですか?
CSS Flexbox(Flexible Box Layout)は、単一の軸(行または列)に沿ってスペースを分配し、コンテナ内のアイテムを整列させるために設計された1次元レイアウトモデルです。ナビゲーションバー、カードの行、中央揃えのコンテンツ、および要素をコンテナに合わせて自然に伸縮させる必要があるUIにおいて、floatやinline-blockハックなどの古い手法に代わるものです。2次元である CSS Grid とは異なり、Flexbox は一度に1つの方向の配置のみを制御するシンプルな配置に優れています。
このプレイグラウンドの使い方
- プリセットを選択する(任意): Holy Grail、Card Grid、Navbar、Hero、Modal、または Sticky Footer を選択して、実際の開始点を読み込みます。各プリセットは、学習や修正が可能な完成されたレイアウトです。
- コンテナのプロパティを調整する: 右パネルのセグメントコントロールを使用して、
flex-direction、flex-wrap、justify-content、align-items、align-content、およびgapを設定します。ビジュアルステージがすぐに更新されます。 - 個々のアイテムを編集する: プレビュー内のアイテムをクリックして選択します。そのアイテムの
order、flex-grow、flex-shrink、flex-basis、およびalign-selfを他のアイテムとは独立して上書きします。上書きされたアイテムには小さなバッジが表示されます。 - アイテムを追加または削除する: 「アイテムを追加」と「選択したアイテムを削除」を使用してアイテム数を変更し、レイアウトがどのように反応するかを確認します。
- コードをコピーする: 下部の「生成されたコード」セクションには、常に現在のレイアウトが反映されます。ワンクリックで CSS、HTML、またはその両方をコピーできます。
コンテナプロパティ リファレンス
フレックスコンテナは display: flex を持つ親要素です。これらのプロパティは、すべての子要素がどのように動作するかを制御します。
| プロパティ | 値 | 効果 |
|---|---|---|
flex-direction |
row · row-reverse · column · column-reverse |
主軸の方向を設定します。row はアイテムを左から右に配置し(デフォルト)、column は垂直に積み上げます。 |
flex-wrap |
nowrap · wrap · wrap-reverse |
スペースがなくなったときに、アイテムを1行に収めるか複数行に折り返すかを制御します。 |
justify-content |
flex-start · center · flex-end · space-between · space-around · space-evenly |
主軸に沿ってアイテムを整列させます。空きスペースを側面やアイテム間に分配します。 |
align-items |
stretch · flex-start · center · flex-end · baseline |
交差軸(主軸に垂直な軸)に沿ってアイテムを整列させます。 |
align-content |
stretch · flex-start · center · flex-end · space-between · space-around |
折り返された行を交差軸に沿って整列させます。アイテムが複数行に折り返された場合にのみ効果があります。 |
gap |
長さ(例:8px, 1rem) |
フレックスアイテム間の溝(ギャップ)を設定します。古い margin ベースの間隔パターンの代わりとなります。 |
アイテムプロパティ リファレンス
これらのプロパティは個々のフレックスアイテム(フレックスコンテナの子要素)に適用され、そのアイテムのコンテナのデフォルト設定を上書きします。
| プロパティ | 値 | 効果 |
|---|---|---|
order |
整数(デフォルト 0) |
HTMLを変更せずにアイテムを視覚的に並べ替えます。数値が小さいほど先にレンダリングされ、負の値はアイテムを開始位置に移動させます。 |
flex-grow |
数値(デフォルト 0) |
コンテナの空きスペースを兄弟要素と比較してどれだけ吸収するかを定義します。すべてのアイテムに 1 を設定すると、スペースが均等に分割されます。 |
flex-shrink |
数値(デフォルト 1) |
十分なスペースがないときにアイテムがどれだけ縮小できるかを定義します。0 は決して縮小しないことを意味し、アイテムは宣言されたサイズを維持します。 |
flex-basis |
auto · 長さ · パーセンテージ |
空きスペースが分配される前のアイテムの初期サイズを設定します。実質的にアイテムの「理想的な」主軸サイズを設定します。 |
align-self |
auto · align-itemsと同じ値 |
単一のアイテムに対してコンテナの align-items を上書きします。 |
justify-content と align-items の違いは何ですか?
justify-content は 主軸 に沿った整列を制御し、align-items は 交差軸 に沿った整列を制御します。主軸は flex-direction が設定する方向(row の場合は水平、column の場合は垂直)です。flex-direction を row から column に変更すると、2つの軸が入れ替わるため、justify-content が垂直方向、align-items が水平方向になります。この入れ替えは、Flexbox を学ぶ際に最も混乱しやすいポイントの1つです。プレビューの下にあるプレイグラウンドの軸インジケーターは、これを視覚的に理解するのに役立ちます。
Flexbox で要素を中央に配置するにはどうすればよいですか?
単一の要素を水平方向と垂直方向の両方で中央に配置するには:
display: flex;justify-content: center; /* 水平方向 */align-items: center; /* 垂直方向 */
これは、margin: auto、transform: translate(-50%, -50%)、または position: absolute を伴う古い中央揃えハックに代わる現代的な方法です。プレイグラウンドで Modal Center プリセットを選択して試してみてください。
実用的なレイアウトプリセットの解説
Holy Grail Layout(聖杯レイアウト)
ヘッダーとフッターがあり、左サイドバー、メインコンテンツ、右サイドバーという伝統的な3カラムのページレイアウトです。歴史的に float で構築するのは非常に困難でしたが、Flexbox を使えば簡単です。中央のカラムに flex: 1 を使用することで、サイドカラムが宣言された幅を維持したまま、残りのすべての水平スペースを吸収します。
Card Grid(カードグリッド)
ビューポートが狭くなるにつれて新しい行に流れる、折り返しのあるカードの行です。flex-wrap: wrap を使用し、各カードに flex: 1 1 240px を設定します。これは、カードが伸縮するものの 240px より狭くならないことを意味します。
Navbar(ナビゲーションバー)
左側にロゴ、右側にリンクがある水平方向のナビゲーションバーです。コツは、ロゴとリンクグループを2つの子要素として justify-content: space-between を設定し、さらにリンク自体にも内部的なフレックスコンテナを使用することです。
Hero Section(ヒーローセクション)
コンテンツを水平・垂直の両方で中央に配置した垂直スタックで、ランディングページのヒーローエリアに最適です。高さのあるコンテナに flex-direction: column、justify-content: center、および align-items: center を使用します。
Modal Center(モーダル中央)
オーバーレイ内で完全に中央に配置されたモーダルダイアログです。上記の3ステップの中央揃えレシピを、フルスクリーンのオーバーレイコンテナに適用したものです。
Sticky Footer(スティッキーフッター)
コンテンツが少ないときはビューポートの最下部にあり、コンテンツが長いときは押し下げられるフッターです。body に display: flex; flex-direction: column; min-height: 100vh を、メインコンテンツに flex: 1 を設定することで実現します。
flex-grow、flex-shrink、flex-basis の違いは何ですか?
これら3つのプロパティ(ショートハンド flex で組み合わされます)は、アイテムがスペースをどのように処理するかを記述します。
flex-basisは、空きスペースが分配される前のアイテムの 理想的な サイズを設定します。アイテムの「開始点」と考えてください。flex-growは、「余ったスペースがある場合、その一部をどの程度受け取るか」を指定します。値0は成長を拒否することを意味し、1は比例して成長し、2は1のアイテムの2倍のシェアを受け取ることを意味します。flex-shrinkは、「スペースが足りない場合、どれだけ縮小するか」を指定します。デフォルトは1(比例して縮小)で、0は縮小を拒否することを意味します。
ショートハンドの flex: 1 は flex: 1 1 0% に展開されます。これは、均等な成長、均等な縮小、ゼロベースを意味し、コンテンツに関係なくすべてのアイテムがコンテナを均等に分け合うことになります。flex: auto は flex: 1 1 auto に展開され、コンテンツのサイズをベースとして尊重します。
Flexbox と Grid はいつ使い分けるべきですか?
アイテムが単一の方向(ボタンの行、ナビバー、カードの単一のカラム)に流れる 1次元 レイアウトには Flexbox を使用してください。Flexbox はコンテンツを認識し、アイテムに自身のサイズを決めさせたい場合に適しています。
行と列の両方を同時に制御する必要がある 2次元 レイアウト(フルページレイアウト、画像ギャラリー、ダッシュボード)には CSS Grid を使用してください。Grid はレイアウトを認識し、名前付きのトラックにアイテムを配置できます。
この2つは補完的なものであり、競合するものではありません。多くの実際のデザインでは、Grid ページレイアウトの中に Flexbox のナビバーやカードの行を組み合わせるなど、両方を組み合わせています。
Flexbox マスターのためのヒント
- 軸を可視化する。 どちらが「メイン」軸でどちらが「交差」軸かを常に意識してください。プレイグラウンドの軸表示はこれを明確にします。
- マージンの代わりに
gapを使用する。 現代のブラウザはフレックスコンテナのgapを完全にサポートしており、最後の子要素に面倒なマージン処理をする必要がなくなりました。 flex: 1を活用する。 アイテムにスペースを均等に分け合わせたい場合、このショートハンドはほぼ常に正解です。- フレックスアイテムに
min-width: 0を設定する。 アイテムには、コンテンツに基づいた暗黙の最小幅があります。URL のような長い文字列によってレイアウトが崩れる場合は、アイテムにmin-width: 0を設定してこれを上書きしてください。 - パーセンテージのみの幅指定を避ける。 パーセンテージの幅と
flex-growを混ぜると、意外な結果になることがあります。適切なデフォルト値を持つflex-basisを優先してください。
ブラウザのサポートと互換性
CSS Flexbox は、Chrome、Firefox、Safari、Edge、およびすべての主要なモバイルブラウザを含む、あらゆるモダンブラウザでサポートされています。フレックスコンテナの gap プロパティは2021年に主要ブラウザで普遍的なサポートに達しました。古いレガシーブラウザ(IE10/11)ではベンダープレフィックスが必要であり、いくつかの既知のバグがあります。それらのユーザー向けには flexbugs を参照してください。
よくある質問
フレックスアイテムがコンテナからはみ出すのはなぜですか?
フレックスアイテムには、コンテンツに基づく暗黙の min-width: auto があります。長い単語、コードブロック、または整形済みテキストにより、アイテムがコンテナよりも広くなることがあります。これを修正するには、アイテムに min-width: 0(カラムレイアウトの場合は min-height: 0)を設定します。
space-between、space-around、space-evenly の違いは何ですか?
space-between は両端にスペースを置かず、アイテム間に等間隔のスペースを置きます。space-around は両端に半分のギャップ、アイテム間にフルギャップを置きます。space-evenly は両端とアイテム間に完全に等間隔のスペースを置きます。プレイグラウンドで切り替えて違いを確認してください。
Flex プロパティをアニメーション化できますか?
はい。flex-grow、flex-shrink、flex-basis、order、および gap は遷移(transition)させることができます。flex-direction、justify-content、および align-items は離散的な列挙プロパティであるため、アニメーションはサポートされていません。
プレイグラウンドはオフラインで動作しますか?
すべての Flexbox 計算は、ネイティブ CSS を使用してブラウザ内で実行されます。ページが読み込まれた後は、API コールやサーバー側の計算がないため、インターネット接続なしでプレイグラウンドを使用できます。
生成されたコードは本番環境で使用できますか?
はい。エクスポートされた CSS は、すべての最新ブラウザでサポートされている標準プロパティを使用しています。HTML はセマンティックなクラス名(flex-container、flex-item)を使用しており、プロジェクトの規則に合わせて変更することも可能です。
追加リソース
- CSS フレキシブルボックスレイアウト - MDN
- CSS Flexible Box Layout Module Level 1 - W3C 仕様書 (英語)
- CSS Flex Box Layout - Wikipedia (英語)
このコンテンツ、ページ、またはツールを引用する場合は、次のようにしてください:
"CSS Flexbox プレイグラウンド"(https://MiniWebtool.com/ja/css-flexbox-プレイグラウンド/) MiniWebtool からの引用、https://MiniWebtool.com/
miniwebtool チームによる。更新日: 2026年4月25日
その他の関連ツール:
ウェブマスターツール:
- CPC 電卓
- CPM 電卓 おすすめ
- CSSコンプレッサー
- ファビコンジェネレーター 新しい
- グーグルアドセンス電卓
- cronジョブジェネレーター おすすめ
- crontab式ジェネレーター 新しい
- htmlコンプレッサー
- HTMLからテキストコンバータ
- キーワード密度チェッカー 新しい
- markdown表ジェネレーター おすすめ
- メタタグジェネレーター
- スマート引用符削除ツール おすすめ
- urlスラッグジェネレーター おすすめ
- ページビュー価値の電卓
- 訪問者の価値の電卓
- unixパーミッション電卓 おすすめ
- htmlエンティティエンコーダーデコーダー おすすめ
- Lorem Ipsumジェネレーター 新しい
- json文字列エスケープアンエスケープ おすすめ
- cURLからJSONへ変換ツール 新しい
- SQLフォーマッター 新しい
- SVG最適化ツール 新しい
- .htaccessリダイレクトジェネレーター 新しい
- Googlebot クロールサイズチェッカー 新しい
- robots.txt生成ツール 新しい
- XMLサイトマップ生成ツール 新しい
- ドメイン年齢チェッカー 新しい
- Open Graphチェッカー 新しい
- WHOIS検索 新しい
- DNSルックアップ 新しい
- ページ速度チェッカー 新しい
- ドメイン信頼度チェッカー 新しい
- リダイレクトチェッカー 新しい
- Hreflang タグジェネレーター 新しい
- リンク切れチェッカー 新しい
- CSS Flexbox プレイグラウンド 新しい