CSS Flexboxジェネレーター
flex-direction、wrap、justify-content、align-items、gapと、アイテムごとのflex、order、align-selfを視覚的に設定します。子要素のライブプレビューとコピー可能なCSS付きです。
コンテナ
align-content はアイテムが複数行に折り返すときだけ効果があります。
アイテム 1
ここでアイテムを選ぶか、プレビュー内でクリックしてください。
プレビュー
プレビューの右下隅をドラッグするとコンテナのサイズを変えられます。
.container {
display: flex;
flex-direction: row;
flex-wrap: nowrap;
justify-content: flex-start;
align-items: stretch;
gap: 10px;
}関連ツール
すべて表示CSS Flexboxジェネレーターとは?
インタラクティブなflexboxのプレイグラウンドです。コンテナのプロパティを設定し、最大12個の子アイテムを追加して、アイテムごとにflex-grow、flex-shrink、flex-basis、order、align-selfを調整できます。プレビューには、生成されたCSSがそのまま適用されます。
CSS Flexboxジェネレーターの使い方
- コンテナを設定します。flex-direction、flex-wrap、justify-content、align-items、align-content、gapです。
- プレビューに表示するアイテム数を選びます。
- アイテムを選び(ボタン、またはプレビュー内でクリック)、flex-grow、flex-shrink、flex-basis、order、align-selfを設定します。
- プレビューの角をドラッグしてサイズを変え、レイアウトの反応を確認します。
.containerと.item-nルールのCSSコードをコピーします。
例
justify-content space-between, gap 16px; item 2: flex-grow 1, order 2, align-self center
.container {
display: flex;
flex-direction: row;
flex-wrap: nowrap;
justify-content: space-between;
align-items: stretch;
gap: 16px;
}
.item-2 {
flex: 1 1 auto;
order: 2;
align-self: center;
} CSS Flexboxジェネレーターを使うべき場面
flexboxは、ナビゲーションバー、ツールバー、ボタングループ、メディアオブジェクト、中央揃えといった一次元のレイアウトに使います。行と列を同時に扱う二次元のページレイアウトには、通常CSS Grid Generatorのほうが適しています。
CSS Flexboxジェネレーターの仕組み
コンテナには常に display: flex に加えて、direction、wrap、justify-content、align-itemsが付きます。align-content はアイテムが折り返せる場合にのみ(1行では効果がないため)、gap は0より大きい場合にのみ書かれます。アイテムでは、既定値と異なる値だけが書かれます。0 1 auto でない場合の flex: grow shrink basis、0でない場合の order、autoでない場合の align-self が、.item-1、.item-2… という名前のルールとして出力されます。無効なflex-basisは指摘され、無視されます。
一般的な使用例
- コンテンツの水平・垂直方向の中央揃え
- 右端に寄せた項目のあるナビゲーションバー
- flex: 1による等幅のカラム
- 折り返すタグやカードの一覧
- orderによる項目の見た目上の並べ替え
よくある質問
CSSにalign-contentが含まれないのはなぜですか。
align-contentは、折り返すflexコンテナの行の配分にのみ作用します。flex-wrap: nowrapでは行が1本だけなので、ツールは出力しません。
flex: 1 1 autoは何を意味しますか。
アイテムは、自動サイズから拡大(1)も縮小(1)もできます。flex-growは、余ったスペースをアイテム間でどう分けるかを決めます。
orderはアクセシビリティに影響しますか。
orderが変えるのは見た目の順序だけです。スクリーンリーダーやキーボードフォーカスは、引き続きHTMLソースの順序に従うため、意味のある並べ替えには使わないでください。