FlexboxとGridのチートシート

FlexboxとGridのチートシート(インタラクティブ)Tailwind対応 | We.Inc

flexboxとCSS gridのすべてのプロパティを、値を変えられるライブのコンテナーで確認できます。grid-template-areasビルダー、flexとgridの使い分けガイド、Tailwindのクラスも掲載しています。

FlexboxとGridのチートシート

Flexboxは要素を行または列の一方向に並べるもので、ツールバー、ナビゲーションバー、中央寄せに最適です。Gridは要素を行と列の両方に同時に配置するもので、ページ全体のレイアウトやカードのギャラリーに向いています。親要素にdisplay: flexまたはdisplay: gridを設定し、下のプロパティを使いましょう。どれもこのページのライブのコンテナーに即座に反映されます。

FlexboxとGrid、どちらを使う?

flexとgridの2つのライブのコンテナーを用意し、コンテナーのすべてのプロパティと、選んだ1つの要素のプロパティを操作できるようにしています。変更するたびに、CSSとTailwindのクラスが表示されます。その下のgrid-template-areasビルダーでは、ページのレイアウトを塗り分けて結果をコピーできます。リファレンスの表はきれいに印刷できます。

よくある質問

justify-contentとalign-itemsの違いは?

justify-contentは主軸に沿って働き、flexの行では左から右の方向です。align-itemsはそれと交差する方向に働き、行では上から下です。flex-directionをcolumnに切り替えると2つの物理的な方向が入れ替わるため、中央寄せで間違ったプロパティを使っているように感じることがあるのです。

justify-contentが効かないのはなぜですか?

主軸に余白があるときにしか効果がないからです。要素にflex-grow: 1があったり、要素が行を埋めていたりすると、分配する余白が残りません。gridでは、justify-contentはトラック全体を動かし、justify-itemsは各セル内で要素をそろえます。

grid-template-areasはどのように機能しますか?

"header header" "side main"のように、各セルに名前を付けた文字列を1行に1つずつ書いてレイアウトを描きます。各子要素は、grid-area: headerのように名前を指定して領域を確保します。エリアは長方形でなければならず、ドットは空のセルを表します。

gridの中でflexboxを使えますか?

はい、よくある使い方です。gridで大きな領域やカードを配置し、flexboxで各領域の中身を並べます。たとえば、ラベルの横にアイコンを置いたり、カードの下端にフッターを固定したりする場合です。

flexboxでgapは使えますか?

はい。現在の主要ブラウザーはすべて、gridだけでなくflexコンテナーでもgapに対応しているので、コンテナーに負のマージンを付ける昔のテクニックはもう不要です。

2つの軸

flexの要素がサイズを決める仕組み

メディアクエリなしのレスポンシブなグリッド

flexコンテナーのプロパティ

display: flexを指定した要素に設定します

flexアイテムのプロパティ

子要素に設定します

gridコンテナーのプロパティ

display: gridを指定した要素に設定します

gridアイテムのプロパティ

子要素に設定します

レシピ

grid-template-areasによるページレイアウト

広い画面では名前付きの3行になります。エリアを1か所変えるだけでページを並べ替えられます。

ツールバー:ロゴを左、リンクを右に

最後のグループにmargin-left: autoを付けると反対の端まで押し出されます。flexboxでよく使われるテクニックです。

メディアクエリなしで並び替わるカードグリッド

ウィンドウの幅を変えてみてください。列の数が自動で変わります。

CSSをコピー

クラスをコピー

(既定値のみ)

Flexboxプレイグラウンド

Gridプレイグラウンド

要素を削除

{n}個の要素

要素を追加

リセット

ライブのflexコンテナー

ライブのgridコンテナー

長めのラベル

ボックスの右下の角をドラッグすると幅を変えられます。要素をクリックすると編集できます。

コンテナー

要素 {n}

grid-template-areasビルダー

塗るエリア

空(.)

行

列

{row}行目、{col}列目:{area}。{brush}として塗る

まだ有効ではありません:{names}は長方形にする必要があります。長方形になるまで、ブラウザーはgrid-template-areasの値全体を無視します。

有効なレイアウトです。すべてのエリアが長方形になっています。

チートシートを印刷

無料で始める · クレジットカード不要

関連: ガイド|Webマーケティングと集客を学ぶ

製品

ご利用いただける方

機能

リソース

会社情報

サイトマップを見る