300以上のホームページ制作案件に携わってきました。豊富な経験とお客様目線のホームページ制作、SEOを考慮した提案が強みです。茨城に寄り添ったサービスを多く展開してまいります。
  • おすすめ

marginとpaddingの違いとは?イメージしやすく解説

marginとpaddingの違いとは?イメージしやすく解説

こんにちは、かなきち(@kanakichi0801)です。
今回は、CSS初心者入門【第一回】ということで、marginとpaddingについて解説して行きます。

最初にCSSのおさらい。次にmarginとpaddingの違いをアボカドを使ってわかりやすく解説をします。 その後に、実際の使い方とショートハンドでの記述方法も解説していきます。サンプルコードも載せてあるので参考にしてください。

これからの記事を読むとmarginとpaddingの違いから実際の使い方とショートハンドでの書き方がわかるよ!

こんな人にオススメの記事です

・CSS初心者の方

・marginとpaddingの違いがわからない人

・marginとpaddingの実際の使い方を知りたい人

・marginとpaddingのショートハンドの書き方を知りたい人

marginとpaddingってなんで使うの?

htmlのみでホームページを作ると以下のように余白がなく、見栄えが悪くなってしまいますが、marginやpaddingを使うことで綺麗に見た目を整えることができます。

marginとpaddingを使う理由の図

marginとpaddingの違いとは?

先ほどの図には文字とそれを囲う枠線がありました。それをアボカドに例えて解説してみます。

アボカドの中には大きな種があり、それが 文字 = 要素 だと思ってください。その周りをアボカドの果肉、これがpaddingとイメージしてください。果肉の周りにアボカドの皮があります。図で言う枠線(border)のことです。

paddingをアボカドに例えてみた図

今後出てきますが、枠線(アボカドの皮)のことをWEB用語でborder(ボーダー)と言います。

先ほどの図には四角い箱が2つありましたので、同じようにアボカドも2つ並べてみます。アボカドとアボカドの間のことをmarginと言います。

marginをアボカドに例えてみた図

pxとは?

ホームページ作成でよく使われる単位を「px(ピクセル)」と言います。 パソコンやスマートフォンは小さなドットの集合体で画像や動画を表示しています。イメージしやすいものであればドット絵でしょうか?

px(ピクセル)とはドット絵に似ている

以下の図の1ドットが1pxのイメージです。

1pxの図解

pxのことを画素ともいいコンピューターで扱う 最小単位 です。

1pxは何cmなの?と思うこともあるかもしれませんがそのような概念がありません。 ホームページ上で扱うデータは px と言う単位で計り px という単位で記述すると覚えましょう。

marginの記述例

図と同じ見た目になるように、CSSファイルにmarginを使って指定します。図のAとBの間隔は50pxです。

marginを表す図

実際のコードが以下になります。

[htmlファイル]

<div class="box__a">A</div>
<div class="box__b">B</div>

[cssファイル]

.box__a{
  margin-bottom: 50px; <!-- box__aというclass(クラス)名の要素からみて下に余白を50pxもたせるという意味。 -->
}

この例では、下に余白を出しましたが、上下、左右の指定ができます。

marginの記述意味記述例
margin全方向に同じだけ余白margin: 50px;
margin-top上に余白margin-top: 50px;
margin-right右に余白margin-right: 50px;
margin-bottom下に余白margin-bottom: 50px;
margin-left左に余白margin-left: 50px;
margin-right自動で算出margin-right: auto;
margin-right自動で算出margin-left: auto;

上の表では、上右下左の順で記述しました。CSSの指定ではすごく重要な順番です。私は上から始まり時計回りと覚えています。
なぜ重要なのかについては、記事の下部「marginのショートハンドの書き方」で紹介して行きます。

autoって何?

ユーザエージェントによって自動的に計算される値のことを指します。プロパティ(変更を加える要素)に応じて効果は変わります。

marginの場合は、[親要素の横幅 – 指定した要素の横幅]によりmarginを自動で算出されます。

autoは基本的に、margin-right、margin-leftで使用します。基本的な使い方としては、ブロック要素を中央配置したい場合に使われます。後ほど説明しますが、margin: 0 auto;という書き方で使われることが多く、これは上下を0px(余白なし)、左右はauto(自動で算出)で中央に配置するという意味です。

ブロック要素を右に配置したい場合は、margin-left: auto;を使うことで配置ができます。ブロック要素を左に配置したい場合はmargin-right: auto;を使うことで配置ができます。

margin-top: auto;margin-bottom: auto;も使えますが、ほとんどの場合は 0 として扱われます。そのため、縦に中央配置したい場合はmarginは基本的に使用しません。

paddingの記述例

図と同じ見た目になるように、CSSファイルにpaddingを使って指定します。図のA要素の周りにはそれぞれ 50pxの余白 があります。先ほども説明しましたが、枠線(border)の内側の余白、先ほど例えたアボカドの果肉の部分は、paddingを使って指定します。

paddingを表す図

実際のコードが以下になります。 [htmlファイル]

<div class="box__a">A</div>

[cssファイル]

.box__a{
  padding: 50px; <!-- box__aというclass(クラス)名の要素の周りにそれぞれ50pxの余白を持たせるという意味 -->
  border: solid 1px red;
}

この例では、全体に同じだけ余白を出しましたが、上下、左右などそれぞれの指定方法が以下になります。

paddingの記述意味記述例
padding全方向に同じだけ余白padding: 50px;
padding-top上に余白padding-top: 50px;
padding-right右に余白padding-right: 50px;
padding-bottom下に余白padding-bottom: 50px;
padding-left左に余白padding-left: 50px;

※paddingはmarginと違って、autoは使用できません。

ショートハンドとは?

余白の大きさがそれぞれ違う場合に、毎回padding-top、padding-bottom…などと指定していると大変ですし、コードが長くなってしまいます。コードを省略して書く方法を以下で紹介します。また、省略して書く書き方をショートハンドと言います。

marginのショートハンドの書き方

意味記述例意味
上下左右が同じmargin: 10px;上:10px、右:10px、下:10px、左:10px
上下、左右margin: 10px 20px上:10px、右:20px、下:10px、左:20px
上、左右、下margin: 10px 20px 30px;上:10px、右:20px、下:30px、左:20px
上下左右が違うmargin: 10px 5px 15px 20px;上:10px、右:5px、下:15px、左:20px

それぞれ違う値の場合は、上 → 右 → 下 → 左 の順で記述します。

他、よく使う記述としては、margin: 0 auto;でブロック要素の中央寄せです。上:0px、右:auto、下:0px、左:autoという意味。
余談ですが、値が0の場合はpxを省略できます

paddingをのショートハンドの書き方

意味記述例意味
全て同じpadding: 10px;上:10px、右:10px、下:10px、左:10px
上下、左右padding: 10px 20px上:10px、右:20px、下:10px、左:20px
上、左右、下padding: 10px 20px 30px;上:10px、右:20px、下:30px、左:20px
全て違うpadding: 10px 5px 15px 20px;上:10px、右:5px、下:15px、左:20px

それぞれ違う値の場合は、上 → 右 → 下 → 左 の順で記述します。

また、paddingは値:autoを使うことができません。

コードを短く書く意味を理解しよう

コーディングで重要なことは、ソースコードを短く書くことです。その為CSS初心者であっても、積極的にショートハンドは使って行きましょう。ただ、必ずショートハンドを使えというわけではありません。ソースコードを短くすることが重要なのでmargin: 50px 0 0 0;margin-top: 50px;でどちらを使えばいいか悩んだ時は、文字数が少ないmargin-top: 50px;を選びましょう。

まとめ

今回は、marginとpaddingの違いや基本の記述方法について書かせていただきました。marginはブロック要素同士の余白であり、paddingは要素の内側の余白です。このブログで説明したアボカドの果肉という意味ですね。

ショートハンドの書き方もすごく重要な部分になりますので理解するようにしましょう。

この記事がいいなっと思ったら読者登録をお願いいたします!

検索

おすすめ記事

お知らせ

【お手軽パック】茨城の方限定! 50%OFFキャンペーン中。本当にいいホームページを始めやすい価格で 【お手軽パック】茨城の方限定! 50%OFFキャンペーン中。本当にいいホームページを始めやすい価格で

※ほぼ同条件の全国10,000以上のホームページの平均価格75万円の5分の1価格という意味。