CSS Grid 生成
CSS Grid は2次元レイアウトを組む標準的な方法ですが、コンテナの構文は忘れがちです。このジェネレーターがコンテナルールを代わりに書きます。等幅の列を固定数、トラック間の余白、最小幅を下回ると auto-fit 列に切り替わるメディアクエリを生成するので、小さな画面でも読みやすいレイアウトが保てます。出力はコンテナCSSのみ。要素の配置はご自身のスタイルシートで行います。
グリッドの作り方
-
1
列数を設定する
等幅のトラックを1〜12個。
-
2
列の最小幅を設定する
この幅を下回ると auto-fit に切り替わり、各列が使える最小サイズを保ちます。
-
3
余白を設定する
列と行の間のスペース。
-
4
CSSを生成する
ツールがコンテナルールとレスポンシブ代替を書き出します。
-
5
コードをコピーする
コンテナルールをスタイルシートに貼り付け、要素はご自身の `grid-column` / `grid-row` ルールで配置します。
生成されるコンテナ
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 16px;
@media (max-width: 660px) {
grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}
repeat(3, minmax(0, 1fr)): 利用可能な幅を均等に分ける3列。1frは残りのスペースの1分画で、minmax(0, 1fr)は列がコンテンツサイズより小さく縮むのを許します。gap: 各トラック間の余白。- メディアクエリは
repeat(auto-fit, minmax(220px, 1fr))に切り替わり、それぞれ220px以上の列を可能な限り作ります。ブレークポイントは列数×最小幅(120pxが下限)なので、小さな画面では列が圧縮されずに折り返されます。
fr 単位
fr は「残りのスペースの1分画」という意味です。固定サイズのトラックを差し引いた後、残りのスペースを fr 単位の合計数で割ります。
grid-template-columns: 200px 1fr 2fr;
1000px のコンテナでは、最初の列が200pxを占め、残りの800pxが1:2に分かれて267pxと533pxになります。
auto-fill と auto-fit
auto-fill: アイテムが足りないとき、空のプレースホルダートラックを作ります。auto-fit: 空のトラックをゼロに畳み、残りのアイテムが伸びて行を埋めます。
レスポンシブ代替はカードグリッドに適した auto-fit を使い、行がいつも埋まって見えます。
列幅を変える
ジェネレーターは等幅の列を出力します。サイズを混ぜたいときは結果を編集します: grid-template-columns: 200px 1fr 2fr; で固定サイドバーと1:2の可変2列になります。名前付きエリア(grid-template-areas)や明示配置(grid-column: 1 / 3)は、生成されたコンテナの上に手で追加します。
Grid と Flexbox
- Grid: トラックによる明示的な2次元レイアウト。行と列の構造を持つレイアウト(ページの骨格、ギャラリー、ダッシュボード)に向きます。
- Flexbox: 単一の軸に沿った1次元の整列。アイテムが自然に流れる場面(ナビバー、ボタンの並び)に向きます。
実際のレイアウトは通常両方を組み合わせます。ページの骨格に Grid、コンポーネント内に Flexbox です。
よくある落とし穴
- 子要素の
min-width: 0を忘れる: グリッドアイテムはデフォルトでコンテンツの最小幅を使うため、fr列が最長の単語より縮めません。子にmin-width: 0を指定して縮めるのを許しましょう。 display: gridなしで入れ子にする: グリッドの子は、自分で宣言しない限りグリッドにはなりません。
よくある質問
小さな画面でレイアウトを守ります。生成されたメディアクエリが repeat(auto-fit, minmax(幅, 1fr)) に切り替わり、各列はその幅を最低限保ち、グリッドは列を圧縮せずに行を増やします。
ジェネレーターは等幅の列を出力します。結果の grid-template-columns 行を編集してサイズを混ぜてください。例: 中央の列を広くする 1fr 2fr 1fr や、固定サイドバーの 200px 1fr。
通常は、アイテムがデフォルトの min-width: auto(コンテンツの最小幅と同じ)を持っているためです。グリッドアイテムに min-width: 0 を指定するとセル内で縮めます。
行と列の両方の構造があるレイアウト(ページレイアウト、写真ギャラリー、ダッシュボード)には Grid。アイテムが1つの軸に沿って流れる場面(ナビバー、ボタンの並び、フォーム項目の縦積み)には Flexbox です。
関連ツール
ASCII表リファレンス
0から127までの完全なASCII表です。NUL、LF、DELなどの制御コードを含め、各文字の10進数、16進数、8進数、2進数、HTML数値文字参照を表示します。
HTML文字参照
HTMLエンティティの検索可能なリスト、その名称コードおよび数値コード、および特殊文字や記号のワンクリックコピー機能を提供します。
キーボードショートカット一覧
macOS、Windows、Linux向けに、VS Code、Chrome、GNU Readlineを使うBashの公式資料に基づく既定ショートカットを検索できます。
HTML フォーマッター
ブラウザ内で HTML を 2 または 4 スペースで整形します。HTML はアップロードも検証もされません。
カラーパレットジェネレーター
基準のHEXカラーから、モノクロマティック、類似色、補色、トライアド、テトラードのパレットを生成し、コピーしやすいCSS変数として書き出します。
バイナリからASCIIへの変換ツール
バイナリ(スペース区切りのバイト、または長いビット列)を貼り付けると、それが表すASCIIテキストを8ビットずつ復号して取得できます。