HTML/CSS/CSS基礎/Lesson 07
ボックスモデル — *すべての要素は四角形*
45分·theory
このチャプター
3/3
ボックスモデル — *すべての要素は四角形*
🎯 このレッスンを読み終えると
このレッスンを読み終えると、以下の3つを自信を持って扱えるようになります。
- ▸✅ Content / Padding / Border / Margin の4つの領域
- ▸✅
box-sizing: border-boxが標準とされる理由 - ▸✅ Margin Collapsing の解決パターン
学習目標をチェックリストとして意識し、すべてに答えられるようになったらレッスンを閉じてください。
HTMLのすべての要素は*ボックス*
核心を一言で
HTMLのすべての要素は四角形のボックスとして描画されます。そのボックスは4層の同心構造: content - padding - border - margin。
各領域の意味
- ▸content — 実際のコンテンツ(テキスト・画像)
- ▸padding — contentとborderの間の余白。内側のスペース
- ▸border — 枠線
- ▸margin — 他の要素との間隔。外側のスペース
最も混乱しやすい点 — width の本当の意味
デフォルトの content-box では:
width: 300px と書いたのに、実際には344px を占めます。直感に反しますね。
border-box — 直感的なアプローチ
モダンCSSの標準 — すべてのプロジェクトは box-sizing: border-box から始まります。widthが本当のwidthになります。
margin の2つの落とし穴
1. 縦方向のmarginの結合 (collapsing):
縦方向のmarginは大きい値に統合されます。AとBの間は50pxではなく30px。
2. インライン要素には縦方向のmarginが効かない:
インライン要素(<span>・<a>)には上下のmarginが効きません。display: inline-block に変更する必要があります。
まとめ
- ▸すべての要素 = 4層のボックス (content・padding・border・margin)
- ▸
box-sizing: border-boxがモダンスタンダード - ▸marginは外側の間隔、paddingは内側の余白
- ▸縦方向のmargin結合とインライン要素の制限に注意
🤖 AIへのリクエスト例
このレッスンの概念を理解すれば、AIに具体的な指示を出せるようになります。漠然とした「直して」ではなく、語彙を持ったリクエスト — それがトークン節約の出発点です。
- ▸「このカードコンポーネントのpadding/marginをbox-sizing: border-boxベースで整理して」
- ▸「このレイアウトのcollapsing marginの問題を解決して」
- ▸「これらの要素がviewport全体に広がるようにheight: 100vh + overflowを設定して」
なぜこれがトークンを減らせるのか
概念を知らないままだと、AIの回答を受け取っても「それは何ですか?」と再度質問しなければなりません。その「再質問」がトークンを消費します。概念を一度しっかり学んでおけば、会話が一度で完結します。
先に読むとよい概念: セレクターの優先順位
次のおすすめ: Flexboxを徹底攻略