CSS実践(3) 「ボックスモデル」「マージン・マージンの相殺」「ボーダー」


1. はじめに

本記事では、CSSの
「ボックスモデル」「マージン・マージンの相殺」「ボーダー」
について記載する。

2. ボックスモデル

ボックスとは?

HTMLタグでマークアップされた要素(タグ+コンテンツ)

ボックスモデルとは?

要素を表示するためのコンテンツ領域の周辺にある、3つの領域(マージン・ボーダー・パディング)のこと。
【図解】

【ボックスモデルを調整できる主なプロパティ】

3. マージン

マージンとは?

ボックスモデルの1番外側の領域のこと。

【サンプル】
※わかりやすく可視化するため、ブラウザ全体にskyblue、要素にblueの背景色を付与。

styles.css
h1 {
  margin: 50px;
}

【表示例】
<before>

<after>
要素の外側の上下左右すべてに対して50pxのマージンが付与されている。

【デベロッパーツールでの検証】

<検証方法>

1.Chromeで⌥+⌘+Iを押下する。 2.Devツール内①のElementsタブを押下。 3.調査したい要素を押下。(今回の例だと②に該当) 4.③で表示されているように、要素周辺のマージンが上下左右50pxであることがわかる。

※マージンを上下左右別々につけることが可能。

margin-top:要素の上方向にマージンをつける。 margin-bottom:要素の下方向にマージンをつける。 margin-right:要素の右方向にマージンをつける。 margin-left:要素の左方向にマージンをつける。

また、上記を簡略化してマージンを付ける方法もある。

margin : 10px 20px 30px 40px; ②margin : 10px 20px; ③margin : 10px 20px 30px;

①マージンをスペース区切りで上(10px)右(20px)下(30px)左(40px)つける方法。
②マージンをスペース区切りで上下(10px)左右(20px)つける方法。
③マージンをスペース区切りで上(10px)左右(20px)下(30px)つける方法。

4. マージンの相殺

マージンの相殺とは?

・垂直マージンを指定した2つのブロックレベル要素が並んだ時に発生する。 ・マージンの相殺が発生すると、2つのマージンのうち大きい方(等しい場合はいずれか)が、1つのマージンとしてみなされる。

☆注意点☆ パディングボーダーに関しては、上下左右すべて相殺されない。

5. パディング

パディングとは?

表示要素の内側に設ける余白部分のこと

【サンプル】
※わかりやすく可視化するため、ブラウザ全体にskyblue、要素にblueの背景色を付与。

styles.css
h1 {
  padding: 50px;
}

【表示例】
<before>

<after>
要素の内側の上下左右すべてに対して50pxのパディングが付与されている。

【デベロッパーツールでの検証】

<検証方法>

1.Chromeで⌥+⌘+Iを押下する。 2.Devツール内①のElementsタブを押下。 3.調査したい要素を押下。(今回の例だと②に該当) 4.③で表示されているように、要素周辺のパディングが上下左右50pxであることがわかる。

※パディングを上下左右別々につけることが可能。

padding-top:要素の上方向にパディングをつける。 padding-bottom:要素の下方向にパディングをつける。 padding-right:要素の右方向にパディングをつける。 padding-left:要素の左方向にパディングをつける。

また、上記を簡略化してパディングを付ける方法もある。

padding : 10px 20px 30px 40px; ②padding : 10px 20px; ③padding : 10px 20px 30px;

①パディングをスペース区切りで上(10px)右(20px)下(30px)左(40px)つける方法。
②パディングをスペース区切りで上下(10px)左右(20px)つける方法。
③パディングをスペース区切りで上(10px)左右(20px)下(30px)つける方法。

6. ボーダー

ボーダーとは?

・マージン領域とパディング領域の間にあるもの。
・日本語で「罫線」を指し、borderでボックスに罫線を引くことができる。

【サンプル】
※わかりやすく可視化するため、ブラウザ全体にskyblue、要素にblueの背景色を付与。

styles.css
h1 {
  border: solid 10px #f3b94e;
}

・border:ボーダープロパティ
・solid:線の種類
・10px:線の太さ
※solidは実線の意味。点線にしたい場合はdottedとする。(今回は割愛)

参考(MDN border):https://developer.mozilla.org/ja/docs/Web/CSS/border

・#f3b94e:実線の色
【表示例】
<before>

<after>

【デベロッパーツールでの検証】

<検証方法>

1.Chromeで⌥+⌘+Iを押下する。 2.Devツール内①のElementsタブを押下。 3.調査したい要素を押下。(今回の例だと②に該当) 4.③で表示されているように、要素周辺に実線で10px付与されていることがわかる。

7. おわりに

次項:CSS実践(4) 「ボックスの横幅と高さの指定」に続く。