CSS

margin

初級

読み方:マージン|英語:Margin

要素の外側の余白で、隣の要素との距離を調整するよ。いつ使う? カードとカードの間隔を空けたい、セクション間に余白を作りたいなど、要素同士の距離を調整するときに使うよ。間違いやすいポイント: 上下のmarginは「相殺(そうさい)」されるよ。上の要素にmargin-bottom: 20px、下の要素にmargin-top: 30pxを指定すると、間隔は50pxではなく30px(大きい方)になるよ。

やさしい説明

margin(マージン)とは、要素の外側の余白です。隣の要素との距離を指定します。

教室の机に例えると、marginは「机と机の間のスペース」です。机の中身(padding)ではなく、机の外側の空間です。

上下左右を個別に指定できます。また margin: 0 auto; で要素を左右中央に配置できる便利な使い方もあります。

具体例・使い方

/* 上下左右すべて16px */
margin: 16px;

/* 上下10px、左右20px */
margin: 10px 20px;

/* 上8px、右16px、下24px、左16px */
margin: 8px 16px 24px 16px;

/* 左右中央揃え(幅指定が必要) */
.container { width: 800px; margin: 0 auto; }

いつ使う?

要素同士の間隔を空けたいときに使います。段落の下に余白を空ける、カード同士の間隔を作る、ページ全体を中央揃えにする——すべてmarginの仕事です。

間違いやすいポイント

❌ 上下のmarginが重なる(マージンの相殺)

/* 上の要素: margin-bottom: 20px */
/* 下の要素: margin-top: 30px */
/* → 間隔は50pxではなく30px(大きい方が勝つ) */

/* 回避策: 片方だけにmarginを指定する */

上下のmarginは「相殺」されて大きい方だけが適用されます。これはCSSの仕様です。

よくある疑問

Q: marginとpaddingの違いは?

A: marginは要素の「外側」、paddingは要素の「内側」の余白です。背景色はpaddingまで塗られますが、marginには塗られません。

Q: margin: auto で中央寄せするには?

A: ブロック要素にwidthを指定した上で margin: 0 auto; と書きます。widthがないと効かないので注意。Flexboxならjustify-content: center;の方が簡単です。

Q: marginに負の値を使える?

A: はい。margin: -10px; のように負の値を使うと要素が重なります。レイアウトの微調整に使いますが、多用すると管理が大変になります。

関連用語

📖 関連レッスン

レッスンを見る →

関連ブログ記事

⚠️ 関連するエラー

❓ 関連するQ&A