CSS LAYOUT

CSSレイアウトジェネレーター

CSS GridとFlexboxを切り替え、配置を見ながらCSSとHTMLを作成できます。Gridは列・行やauto-fit・auto-fill、Flexboxはflex-directionやjustify-contentを個別に設定できます。

設定はブラウザ内だけで処理され、保存・外部送信されません。

レイアウト方式

作りたい配置に合わせて切り替えてください。

GENERATOR

配置を設定してCSSを作成

入力が有効な間だけプレビューとコードへ反映します。

プリセット

Container設定

明示グリッド、gap、整列、自動配置を設定します。

列トラック

行トラック

トラック間の余白
詳細なGrid設定
暗黙グリッド

明示グリッド外へItemを配置した場合などに作られるトラックのサイズです。

プレビューサイズ

この幅と高さは確認専用で、生成CSSには含めません。

Item設定

Item 1を編集中

Grid Itemの詳細設定
列の配置
行の配置

リアルタイムプレビュー

Itemをクリックすると、そのItemの設定へ切り替わります。

生成CSS・HTML

初期値から変更したItemだけ個別CSSを追加します。

Container CSS

Container・Item CSS

HTML例

CSS GridとFlexboxの使い分け

CSS Gridは列と行を同時に扱う2次元レイアウト、Flexboxは主軸に沿って並べる1次元レイアウトです。ページ全体やカード一覧の骨組みにはGrid、ナビゲーションやボタン列など内容に沿う並びにはFlexboxが適しています。上のモードを切り替えても、それぞれの編集内容はページを離れるまで保持されます。

仕様の基準:W3C CSS Grid Layout Module Level 2、W3C CSS Flexible Box Layout Module Level 1

CSS Gridとは?

CSS Gridは、列と行の2次元で要素を配置できるレイアウト方式です。列・行を区切る線がGrid line、その間がtrack、交差してできる区画がcellです。Grid Itemは自動配置するほか、line番号やspanで明示配置できます。

grid-template-columns・grid-template-rowsで明示トラックを定義し、同じトラックはrepeat()で短く出力できます。

列・行とtrack sizing

grid-template-columnsとgrid-template-rowsで明示トラックを定義します。frは利用可能な残り空間の比率、autoやmin-content・max-contentは内容に基づくサイズです。同じトラックはrepeat()で短く出力します。

minmax(最小, 最大)は範囲を指定します。仕様上、最小側にflex値のfrは使えません。fit-content()は内容に応じて伸びつつ指定上限を持たせます。

auto-fitとauto-fillの違い

どちらも利用可能幅に応じて繰り返し数を決めます。auto-fitは空の繰り返しトラックを折りたたむため、少ないItemが幅を埋めやすくなります。auto-fillは空トラックも残すため、将来入る位置を保ちたい場合に向きます。本ツールはminmax(最小幅, 1fr)と組み合わせます。

line・span・暗黙グリッド

grid-column: 1 / span 2は1番lineから2トラック分、1 / -1は先頭から最後の明示lineまでを表します。line番号に0はありません。明示範囲外へ置いた場合や自動配置で足りない場合、grid-auto-rows・grid-auto-columnsを使う暗黙トラックが作られます。

Item同士の重なりはCSS Gridで許可される正常な表現です。一方、denseやorderは視覚順だけを変えることがあり、HTMLの意味のあるソース順を置き換える目的には使わないでください。

items・content・selfの整列

justify-items・align-itemsは各cell内の全Item、justify-self・align-selfは個別Itemを整列します。justify-content・align-contentはGrid全体がContainerより小さいとき、そのGrid全体を配置します。プレビューの固定幅・高さはこの違いの確認専用です。

Flexboxの主軸・折り返し・Item設定

Flexboxではflex-directionで主軸を決め、justify-contentで主軸方向、align-itemsで交差軸方向の配置を調整します。flex-wrapで折り返した複数lineにはalign-contentが働き、CSS Box Alignment仕様のgapで間隔を指定できます。

Itemごとのflex-grow・flex-shrink・flex-basisで空間配分を調整できます。row-reverse、column-reverseやorderは視覚順だけを変えるため、読み上げやキーボード順の代わりには使わないでください。

よくある質問

subgridに対応していますか?

今回のツールでは対応していません。親Gridとtrackを共有する高度な機能のため対象外です。

名前付きline・areaやmasonryに対応していますか?

対応していません。安全で分かりやすい数値lineと標準的なGrid機能に絞っています。