【CSS学習】CSSのmarginとは?使い方・注意点・paddingとの違いを完全解説!

はじめに

Web制作をしているとよく登場する「margin」。
見た目を整えるうえで欠かせないプロパティですが、paddingとの違いや上下のマージンが重なってしまうマージンの相殺など、初心者がつまずきやすいポイントも多いです。

この記事では、CSSのmarginの基本から応用、よくある注意点までをわかりやすく解説します。
これを読めば「marginを自由自在に使いこなす」ことができるようになります。

marginとは?

margin(マージン)は、要素の外側の余白を指定するCSSプロパティです。
つまり「他の要素との距離」を調整するために使います。

See the Pen Untitled by suguru (@suguru22) on CodePen.

上記の例では、ボックスの外側に75pxの余白ができます。
この余白によって、ほかの要素やブラウザの端との距離が確保されます。

marginの指定方法

marginは4方向に分けて指定できます。

プロパティ意味
margin-top上の余白margin-top: 10px;
margin-right右の余白margin-right: 20px;
margin-bottom下の余白margin-bottom: 30px;
margin-left左の余白margin-left: 40px;

省略記法(shorthand)

4つのmarginをまとめて指定することもできます。

margin: 10px 20px 30px 40px;
/* 上 右 下 左 の順番 */

また、指定する数が少ない場合は以下のように省略も可能です。

記述意味
margin: 10px;上下左右すべて10px
margin: 10px 20px;上下10px、左右20px
margin: 10px 20px 30px;上10px、左右20px、下30px
margin: 10px 20px 30px 40px;上10px、右20px、下30px、左40px

marginの単位

よく使われる単位は以下の通りです。

単位意味
pxピクセル(固定値)
%親要素の幅に対する割合
em要素のフォントサイズに対する相対値
remルート要素(html)のフォントサイズに対する相対値

たとえば以下のように書くと、親の幅に応じて動的に余白が変化します。

.box {
  margin: 5%;
}

margin: auto で中央寄せ

ブロック要素を横方向に中央寄せするには、margin: 0 auto;を使います。

.box {
  width: 200px;
  margin: 0 auto;
}

親要素にtext-alignを使わずに中央配置できる便利な方法です。
※ただし、widthを指定していないと中央寄せはできません。

marginとpaddingの違い

項目marginpadding
位置要素の外側要素の内側
影響範囲他の要素との距離に影響コンテンツと枠線の距離に影響
背景色背景は適用されない背景色が反映される

.box {
  background-color: lightblue;
  margin: 20px;
  padding: 20px;
}

この場合、paddingは背景色の中に余白を作り、marginは外側に余白を作ります。
見た目を整えるときは、どちらで余白を取るのかを意識することが大切です。

marginの相殺(collapse)

2つの縦方向のmarginが重なった場合、大きい方のmarginだけが適用されます。
これを「marginの相殺(マージンの重なり)」と呼びます。

See the Pen Untitled by suguru (@suguru22) on CodePen.

この場合、上下のmarginが50px + 30px = 80pxにはならず、50pxだけが反映されます。

よくあるトラブルと解決方法

子要素のmarginが親要素を押し上げる

親要素の中の最初の子要素にmargin-topを指定すると、親ごとずれてしまうことがあります。
これは「marginの相殺」が原因です。

解決方法

  • overflow: hidden; を親に指定する
  • 親に padding-top を与える
  • 親に border-top: 1px solid transparent; を与える(transparent:透明指定)

などで相殺を防げます。

marginを使うコツ

  • デザインの統一感を出すために、余白の基準値を決めておく(例:8px単位)
  • コンポーネント間の余白はmarginで、内部の調整はpaddingで
  • 上下marginの相殺を意識して、思わぬズレを防ぐ

まとめ

marginは、CSSレイアウトの中でも最も基本的でありながら、理解が深まるほど奥が深いプロパティです。
「外側の余白」「autoで中央寄せ」「上下の相殺」など、今回紹介したポイントを押さえることで、
より美しく整ったWebデザインを作ることができます。

タイトルとURLをコピーしました