【CSS】 padding、margin の使い方|HTML&CSS入門講座(8)

HTML&CSS
この記事は約10分で読めます。

はじめに

 HTML&CSS入門講座の第八弾として、【CSS】 padding、margin の使い方ついて紹介します。

 この記事を読むと次の疑問について知ることができます。

●paddingとは、marginとは何ですか?
●paddingやmarginの使い方はどうするの?
・ 色々な指定の仕方
 上下左右をまとめて指定する方法
 上下左右のどれか1つだけ指定する方法
 上下左右の余白を個別に違う値などを一度に指定する方法
 上下や左右の値をセットで同じ値を指定する方法
 余白の指定を%で指定する方法
 HTML&CSS入門講座(7)では、max-widthとmin-widthの使い方について解説してきました。
 
 CSSの中のpadding(内側の余白)、margin(外側の余白) の使い方ついて深堀していきます。

paddingとは?、marginとは?

 これを説明するには、ボックスモデルを用いたほうが分かり易いです。

 前にも何度か示していますが、ここに再度、表示します。

 

 上述の図から分かるように、paddingは、要素の中身とボーダー(線)の間の余白のことで、marginは、ボーダー(線)の外側の余白のことなんです。

 そして、widthやheightは中身に対して指定するもので、paddin、marginに対しては含まれないことに注意しましょう。

paddingやmarginの使い方

色々な指定方法

上下左右をまとめて指定する方法

padding: 〇〇px
margin: 〇〇px

ここで、〇〇には、数値が入ります。
 例えば、 「padding: 20px」と指定したら、要素とボーダーの間の上下左右の余白を20px空けなさいとなります。
 
 また、「margin: 20px」と指定したら、ボーダーの外側の余白を上下左右20px空けなさいとなります。
 

 それでは実際に、実例を書いてみましょう。

HTML

<h1>paddingとmarginの違い</h1>
<h2 class="pad1">この要素にはpadding、marginの指定なし</h2>
<h2 class="pad2">この要素にはpddingの指定あるが、marginの指定なし</h2>
<h2 class="mar2">この要素にはmarginの指定あるが、paddingの指定なし</h2>
<h2 class="pad3">この要素にはpdding、marginの指定なし</h2>

CSS

.pad1 {
background-color: skyblue;
}
.pad2 {
background-color: red;
padding: 50px;
}
.mar2 {
background-color: red;
margin: 50px;
}
.pad3 {
background-color: green;
}
結果は次の通り。
 

 

上述の画像には、5つの要素が使われています。

  • 見出しの要素:h1タグの「paddingとmarginの違い」
  • 2番目(背景:スカイブルー)と5番目(緑)のpaddingとmarginの指定なし
  • 3番目要素のpaddingで上下左右に50pxの余白を取ったもの
  • 4番目要素のmarginで上下左右に50pxの余白を取ったもの

以上の結果から、次のことが分かります。

  • 背景には、paddingの余白が含まれること。
  • 背景には、marginの余白は含まれないこと。

上下左右のどれか1つだけ指定する方法

上だけ指定 ⇒ margin-top: 〇〇px、padding-top: 〇〇px
下だけ指定 ⇒ margin-bottom: 〇〇px、padding-bottom: 〇〇px
左だけ指定 ⇒ margin-left: 〇〇px、padding-left: 〇〇px
右だけ指定 ⇒ margin-right: 〇〇px、padding-right: 〇〇px

ここで、〇〇には、数値が入ります。
 上述の指定方法は、上下左右のどれか一つのみの余白を取りたい場合に使用します。
 
 paddingに上下左右にそれぞれに余白30pxを取った場合とmarginを上下左右に余白30pxとった場合を例として見てみましょう。
 
HTML

<h2>paddingで上下左右に1つのみ指定した場合の違い</h2>
<h3 class="padtop">この要素には上に余白30pxのpaddingを指定</h3>
<h3 class="padright">この要素は右に余白30pxのpaddingを指定</h3>
<h3 class="padbottom">この要素は下にに余白30pxのpaddingを指定</h3>
<h3 class="padleft">この要素は左に余白30pxのpaddingを指定</h3>

<h2>marginで上下左右に1つのみ指定した場合の違い</h2>
<h3 class="marright">この要素は右に余白30pxのmarginを指定</h3>
<h3 class="martop">この要素には上に余白30pxのmarginを指定</h3>
<h3 class="marbottom">この要素は下にに余白30pxのmarginを指定</h3>
<h3 class="marleft">この要素は左に余白30pxのmarginを指定</h3>
CSS

.padtop {
background-color: red;
padding-top: 30px
}
.padright {
background-color: red;
padding-right: 30px
}
.padbottom {
background-color: red;
padding-bottom: 30px
}
.padleft {
background-color: red;
padding-left: 30px
}

.martop {
background-color: red;
margin-top: 30px
}
.marright {
background-color: red;
margin-right: 30px
}
.marbottom {
background-color: red;
margin-bottom: 30px
}
.marleft {
background-color: red;
margin-left: 30px
}
結果は次の通り。
 
 

 HTMLとCSSを見ながら、それぞれの違いを見てください。

上下左右の余白を個別に違う値などを一度に指定する方法

 上下左右の余白を別個にそれぞれ違う値を一度に指定したい場合に使用します。

paddinng: 〇〇px △△px ●●px ▲▲px
margin: 〇〇px △△px ●●px ▲▲px

ここで、〇〇、△△、●●、▲▲は数値を指定して、同じ値でもOK
上下左右の余白を設定する間には半角のスペースを入れること。
 paddingでは、上右下左にそれぞれに余白30px、20px、50px、10pxを取った場合とmarginを上右下左にそれぞれに余白30px、20px、50px、10pxとった場合を例として見てみましょう。
 
HTML

<h1>上下左右にpaddingを指定</h1>
<h2 class="padzen">この要素にはpaddingの上下左右の余白を違う値を指定</h2>

<h1>上下左右にmarginを指定</h1>
<h2 class="marzen">この要素にはmarginの上下左右の余白を違う値を指定し</h2>
CSS

.padzen {
backgroud-color: skyblue;
padding: 30px 20px 50px 10px;
}

.marzen {
backgroud-color: skyblue;
margin: 30px 20px 50px 10px;
}
結果は次の通り。
 

上下や左右の値をセットで同じ値を指定する方法

 上下が同じ余白、左右が同じ余白の場合に指定する方法です。

padding: ○○px ▲▲px
margin: ○○px ▲▲px

ここに、○○は上下の余白、▲▲は右左の余白を数値で指定。
○○、▲▲には同じ値でもOK
上下の余白と右左の余白の指定の間には半角スペースを入れること。
 paddingでは、上下余白30px、右左の余白50pxを取った場合とmarginでは、上下余白30px、右左の余白50pxを取った場合を例として見てみましょう。
 
HTML

<h1>上下や左右の値をセットで同じ値のpaddingを指定</h1>
<h2 class="padjougesayu">この要素には上下や右左の値をセットで同じ値のpadding余白を指定</h2>

<h1>上下や左右の値をセットで同じ値のmarginを指定</h1>
<h2 class="marjougesayu">この要素には上下や右左の値をセットで同じ値のmargin余白を指定</h2>
CSS

.padjougesayu {
backgroud-color: green;
padding: 50px 30px;
}

.marjougesayu {
backgroud-color: green;
margin:50px 30px;
}
結果は次の通り。
 

余白の指定を%で指定する方法

 この指定方法は、左右の余白の指定で利用することがほとんどで、上下の余白の指定ではほとんど利用しません。

 そして、その指定方法は、親要素に対する割合(%)で子要素を指定します。

 また、width(幅)、padding、marginの何れも使い、合計で100%にする必要があります。

 そうしないと、子要素は親要素をはみ出してしまいます。

 ここでは、親要素のwidth(幅)500px、子要素のwidth(幅)60%、padding10%(左右で20%)、margin10%(左右で20%)を見てみましょう。

HTML

<h1>余白、幅のパーセント指定した場合</h1>
<div class="oya">
<h2>余白のパーセント指定</h2>
</div>
CSS

.oya {
    background-color: skyblue;
    width: 500px;
}
.oya h2 {
    background-color: red;
    border: 2px solid black;
    width: 60%;
    padding: 10%;
    margin: 10%;
結果は次の通り。
 

  あと、このような%を指定する方法は、前にも少し説明しましたが、レスポンシブルデザインで利用されます。

 つまり、パソコンで見た際に45pxの余白がちょーど良い余白ですが、スマホで見ると余白が大きすぎてバランスが良くないというときに使います。

 パソコンで見た際には、例えば横幅が900pxが横一杯の長さであり、余白が45px(5%の余白)が丁度良いとすれば、ここで余白を%指定してやれば、300pxのスマホでの余白は300×5%=15pxとなり、パソコンで見た場合と同じバランスで見ることができると言う訳です。

おわりに

 如何だったでしょうか?

 paddingとは、marginとは何ですか?、paddingやmarginの使い方はどうするの?、色々な指定の仕方、上下左右をまとめて指定する方法、上下左右のどれか1つだけ指定する方法、上下左右の余白を個別に違う値などを一度に指定する方法、上下や左右の値をセットで同じ値を指定する方法、余白の指定を%で指定する方法などについて解説してきました。

 この記事があなたにとって少しでもお役に立てればこれほど嬉しいことはありません。

以上です。

コメント

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