この記事ではCSSのmargin
プロパティについて解説します。
marginとは?
CSSでレイアウトをする際、下図のようなボックスモデルと呼ばれる余白の考え方を理解する必要があります。
その中でmargin
は、要素の外側の余白を指定するのに使います。
要素の外側の余白とは要素の中身と枠の外側にある部分のことで、上下左右に余白を指定できます。
ちなみに要素にwidth
やheight
を指定すると、要素の中身の大きさが変わります(図でいうと白い点線内)。
marginの使い方
まとめて値を指定
margin
は以下のように、まとめて指定することができます。
4つの値を半角スペースで区切って書くと、上から時計周りで余白の値を指定することができます。
CSS
margin: 10px 20px 10px 20px; /* 上10px 右20px 下10px 左20px */
その他にも、4つの値ではなく3つや2つの値で省略して書くこともできます。
CSS
margin: 10px 20px 10px; /* 上10px 左右20px 下10px */ margin: 10px 20px; /* 上10px 左右20px */
個別に値を指定
Webサイトを作っていると、個別に値を指定する機会は割と多いのでこちらも覚えておきましょう。
CSS
margin-top: 10px; /* 上のmarginだけ10px */ margin-right: 20px; /* 右のmarginだけ20px */ margin-bottom: 10px; /* 下のmarginだけ10px */ margin-left: 20px; /* 左のmarginだけ20px */
以下の場合、「下のmargin
だけ20px」という指定になります。
HTML
<div class="BOX-A">BOX-A</div> <div class="BOX-B">BOX-B</div>
CSS
.BOX-A{ margin-bottom: 20px; }
marginの相殺
margin
が指定されている要素が前後に並ぶと、値が大きい方のmargin
のみが適用されます。
これをmargin
の相殺と呼びます。
以下の場合、一見すると上の要素と下の要素に指定してあるmargin
の値を足して30px余白ができそうですが、実際には相殺が起こり余白は下の要素に指定してある20pxが適用されます。
HTML
<div class="BOX-A">BOX-A</div> <div class="BOX-B">BOX-B</div>
CSS
.BOX-A{ margin-bottom: 10px; } .BOX-B{ margin-top: 20px; }
気をつけること
margin
の相殺は上下のmargin
でのみ起こりますので、左右のmargin
では相殺は起こりません。
左右中央配置
ブロック要素のmargin
左右の値をautoにすると、左右中央配置になります(その時margin
上下はauto指定にすることが多い)。
詳しくはこちらの記事をご覧ください。
まとめ
この記事に書かれていることで、特に覚えておいて欲しいことは以下の3点です。
- marginの値は上下左右まとめてでも、個別でも指定できる
- marginが指定されている要素が縦に並ぶと、値が大きい方のmarginのみが適用される
- ブロック要素の左右のmarginをauto指定にすると、左右中央配置ができる
CSS関係の記事は他にも書いているので、宜しければそちらもチェックしてみてください。
-
【完全初心者向け】CSSについての超簡単まとめ
WEBサイトを作る上で、HTMLと並んで絶対に欠かせない言語といえばCSS。 この記事ではCSSについてなるべく難しい言葉を使わずに、でも要点は抑えて解説していこうと思います。是非肩の力を抜いて読み進 ...
-
【CSS入門】要素の幅を指定するwidthについてマスターしよう
この記事ではCSSのwidthプロパティについて解説します。 Contentswidthとは?widthの使い方width: auto;width: ○○px;width: ○○%;まとめ width ...
-
【CSS入門】heightで要素の高さを指定しよう
この記事ではCSSのheightプロパティについて解説します。 Contentsheightとは?heightの使い方height: auto;height: ○○px;height: ○○%;hei ...
-
【CSS入門】max-width・min-widthでレスポンシブウェブデザインに対応しよう
この記事ではレスポンシブなサイトを作る上で絶対に欠かせない、CSSのmin-widthとmax-widthプロパティについて解説します。 Contentsmin-widthとmax-widthmin- ...
-
【CSS入門】paddingで要素内側の余白を指定
この記事ではCSSのpaddingプロパティについて解説します。 Contentspaddingとは?paddingの使い方まとめて値を指定個別に値を指定まとめ paddingとは? CSSでレイアウ ...