CSS レッスン2
ボックスモデル
すべてのHTML要素は「箱」として扱われる仕組みを理解しよう
ボックスモデルとは
CSSでは、すべてのHTML要素が「ボックス(箱)」として扱われます。 ボックスは内側から順に4つの領域で構成されています:
content- コンテンツ領域(テキストや画像が表示される部分)padding- 内側の余白(コンテンツとボーダーの間)border- ボーダー(枠線)margin- 外側の余白(他の要素との間隔)
ボックスモデルを視覚的に確認
Monaco + Shiki / Tab でインデント / Ctrl(Cmd)+Enter で再実行
style.csslazy
27 lines0 issues
Monaco Editor を準備しています
表示領域に入った時点で Monaco と Shiki を初期化します。
preview.local
Live Previewpadding(内側の余白)
paddingはコンテンツとボーダーの間の余白です。方向ごとに個別指定もできます:
padding: 20px;- 上下左右すべて20pxpadding: 10px 20px;- 上下10px、左右20pxpadding: 10px 20px 30px 40px;- 上、右、下、左(時計回り)padding-top,padding-right,padding-bottom,padding-left- 個別指定
margin(外側の余白)
marginは要素の外側の余白で、他の要素との間隔を制御します。paddingと同じ記法が使えます。
margin: auto;- ブロック要素を中央揃え(左右)- 隣り合う垂直方向のmarginは「マージンの相殺」が起こる(大きい方だけ適用される)
- marginには負の値も設定できる
padding と margin の違い
Monaco + Shiki / Tab でインデント / Ctrl(Cmd)+Enter で再実行
style.csslazy
31 lines0 issues
Monaco Editor を準備しています
表示領域に入った時点で Monaco と Shiki を初期化します。
preview.local
Live Previewbox-sizing: border-box
デフォルトでは width はコンテンツ領域だけの幅です。 paddingとborderを足すと、実際の表示サイズが指定値より大きくなります。
box-sizing: border-box を使うと、 paddingとborderを含めた合計が width になるため、計算が簡単になります。
box-sizing の比較
Monaco + Shiki / Tab でインデント / Ctrl(Cmd)+Enter で再実行
style.csslazy
27 lines0 issues
Monaco Editor を準備しています
表示領域に入った時点で Monaco と Shiki を初期化します。
preview.local
Live Previewまとめ
- すべてのHTML要素は content → padding → border → margin の「ボックス」で構成される
paddingは内側の余白、marginは外側の余白margin: autoでブロック要素を中央揃えできるbox-sizing: border-boxを使うとサイズ計算が直感的になる- 実務では
* { box-sizing: border-box; }をリセットCSSに含めるのが一般的