Aerial view of a man using computer laptop on wooden table
Webデザインを学び始めた人が最初につまずきやすいポイントの一つに、CSSの「margin(マージン)」と「padding(パディング)」があります。どちらも「余白」に関係しているため、混同しやすいですが、役割は大きく異なります。この記事では、marginとpaddingの違いをわかりやすく解説し、それぞれの使い方を実例付きで紹介していきます。基本を押さえることで、よりきれいで意図通りのレイアウトを組めるようになりますので、ぜひ最後まで読んでください!
marginとは、要素の外側に作る「外側の余白」のことを指します。例えば、複数のボックスが並んでいる場合、それぞれの間隔をあけるために使うのがmarginです。
要素と要素の「間」にできる空白と覚えておきましょう。
.box {
margin: 20px;
}
上記のように指定すると、四方(上・右・下・左)すべてに20px分の外側の余白ができます。これにより、隣接する要素との距離が生まれ、見た目が整います。
paddingとは、要素の内側に作る「内側の余白」のことです。要素の中にあるコンテンツ(テキストや画像)と、ボックスの境界線(border)との間にスペースを作りたいときに使います。
.box {
padding: 20px;
}
このように設定すると、ボックスの内側に20pxの余白ができ、文字や画像がボーダーから離れ、見やすくなります。
marginとpaddingの違いを一言でまとめると、
イメージとしては以下のようになります。
[ margin ] [ border ] [ padding ] Content [ padding ] [ border ] [ margin ]
つまり、marginは「外」、paddingは「中」にできるスペースです。この構造を理解しておくと、レイアウト崩れの原因を特定しやすくなります。
marginもpaddingも、個別に方向を指定することができます。
.box {
margin: 10px;
padding: 10px;
}
すべての方向(上・右・下・左)に同じ値を指定します。
.box {
margin-top: 10px;
margin-right: 5px;
margin-bottom: 15px;
margin-left: 5px;
padding-top: 10px;
padding-right: 5px;
padding-bottom: 15px;
padding-left: 5px;
}
それぞれの方向に別々の値を設定できます。
一括でまとめて指定する書き方もあります。
.box {
margin: 10px 20px 30px 40px; /* 上 右 下 左 の順番 */
padding: 5px 15px; /* 上下 右左 */
}
というルールで展開されます。
ここでは、実際にmarginとpaddingを使った簡単なレイアウト例を見てみましょう。
<div class="container">
<div class="box">Box 1</div>
<div class="box">Box 2</div>
</div>
.container {
background-color: lightgray;
padding: 20px;
}
.box {
background-color: white;
margin-bottom: 10px;
padding: 15px;
border: 1px solid #ccc;
}
この例では、
結果として、見た目が整った読みやすいレイアウトになります。
CSSでは、隣り合う要素同士のmarginが合わさってしまう「マージン相殺(margin collapsing)」が起こる場合があります。
例えば、親要素と子要素にそれぞれmargin-topが指定されていると、通常はそれぞれ適用されそうですが、実際は大きい方のみが適用されます。
<div class="parent">
<div class="child">Child</div>
</div>
.parent {
margin-top: 20px;
}
.child {
margin-top: 30px;
}
この場合、20px+30px=50pxにはならず、30pxだけ空きます。
マージン相殺を防ぎたい場合は、親要素にpadding
やborder
を付けると良いです。
marginとpaddingを使う上で、初心者がよくやってしまうミスを紹介します。
特に最後のポイントは、box-sizing: border-box;
を使うと解決できます。
* {
box-sizing: border-box;
}
これを設定しておくと、widthやheightにpaddingやborderのサイズが含まれるので、レイアウト計算が簡単になります。
実際にWebサイトを作るときには、以下のように使い分けるとスムーズです。
たとえば、見出しと本文の間隔はmargin、ボタン内の文字とボーダーの間隔はpaddingを使う、という具合です。
また、レスポンシブデザイン(スマホ対応)をする際も、marginとpaddingを適切に使い分けることで、バランスの良いデザインになります。
CSSのmarginとpaddingは、Webデザインに欠かせない重要な概念です。
一見似ているようで、
この基本をしっかり押さえておくことで、レイアウト崩れを防ぎ、より洗練されたページを作れるようになります。
まずは小さなサンプルからmarginとpaddingの使い方を試して、感覚を身につけていきましょう!