CSS

最終更新日: 2024.01.18 (公開: 2024.01.18)

CSSのmarginとは?余白の指定方法の基本とpaddingとの違いを解説

CSSのmarginとは?余白の指定方法の基本とpaddingとの違いを解説

「CSS」のmarginとは、「CSS」の余白を指定するプロパティの1つです。
そんなWebサイト作成で大切なプロパティである「CSS」のmarginの意味や使い方、paddingとの違いについて解説します。

「CSS」を学習している方の中には、marginの学習に苦戦している人がいます。marginとは、「HTML」要素の余白を指定するプロパティであり、Webサイトを作成する上でとても大切な要素のひとつです。

身に付けられるまでには少し時間がかかるかもしれませんが、「CSS」を扱うためにはしっかりとマスターしておくことが大切です。本記事では、「CSS」のmarginの意味や使い方、paddingとの違いについて解説します。

CSSのmarginとは?

「CSS」のmarginとは、「HTML」要素の余白を指定するプロパティのことです。主に、要素の外側の余白を指定するときに使用されるプロパティであり、Webサイトのレイアウトを整えることでユーザーの視認性を高められます。

「CSS」でWebサイトのデザインを整える場合、高頻度で使用されるプロパティのひとつです。そのため、「CSS」を扱う方やこれから学習を始める方は、しっかりとマスターしておきましょう。

また、「CSS」のプロパティには、marginと似たpaddingというプロパティもあり、このプロパティもとても重要な役割を持っています。marginと一緒にpaddingもしっかりとマスターするようにしましょう。

CSSのmarginとpaddingの違い

「CSS」で余白を設定するにはmarginとpaddingがあり、それぞれに違いがあります。

marginは、「HTML」要素の外側の余白を指定するプロパティであり、Webサイトのレイアウトを整えたり視認性が向上したりします。

paddingとは、marginと似た効果を持つプロパティで要素の内側の余白を指定します。paddingを指定することで

要素などの中のレイアウトを整えられるため、このプロパティもWebサイト作成には欠かせません。

「CSS」では、要素の外側と内側どちらの余白を指定するかによって、プロパティを使い分けます。そのため、初めて「CSS」を扱う初心者の方は、marginとpaddingの効果を反対に覚えたり、使い方を間違えてたりする場合が多いので注意しましょう。

CSSのmarginの主な使い方4つ

「CSS」の余白を指定するプロパティのひとつであるmarginは、主に4つの使い方があります。

  • 上下左右を一気に指定する
  • 各辺を指定する
  • margin:auto;で指定する
  • 「CSS」のmarginを%で指定する

使い方を理解しておくことで、効果的に活用できます。

上下左右を一気に指定する

marginは、上下左右を一気に指定することができるプロパティです。4辺全てを一気に指定するだけでなく、上下と左右で分けて余白を指定することやそれぞれの辺を順番に指定できるため、汎用性が高いことが特徴的です。

しかしWebサイト制作では拡張性や保守性が必要なので、上と右だけにmarginを指定したり、不要な0という値を付けないようにしたりしましょう。

ここで上下左右を一気に指定する場合は、以下のようにコードを記述します。

セレクタ {
    /* 4辺全て同じ値にする */
    margin:  10px;

    /* 上下と左右で分けて指定 */
    margin:  10px 20px;

    /* 上と下と左右で分けて指定 */
    margin: 10px 20px 10px;

    /* 4辺バラバラの数値を指定 */
    margin: 10px 20px 30px 40px;
}

上記では余白の数値をpxで指定していますが、他にもrem、%などを使用できます。

各辺を指定する

各辺を一気にではなく別々に指定する場合は、特定の辺のみを指定するプロパティを使用します。

  • margin-left   要素の左側の余白だけを指定するプロパティ
  • margin-right    要素の右側の余白だけを指定するプロパティ
  • margin-top    要素の上側の余白だけを指定するプロパティ
  • margin-bottom 要素の下側の余白だけを指定するプロパティ

4つのプロパティ要素は一部だけ変更できるため便利ですが、複数指定する場合は通常のmarginで指定したほうがよい場合もあります。そのため、臨機応変に使用するプロパティを選びましょう。

また、各辺を別々に指定する場合、以下のようにコードを記述します。

「HTML」

<p class="above">前の要素</p>
<p class="middle">要素</p>
<p class="under">後の要素</p>

「CSS」

.middle {
  /*真ん中の要素*/
  background: orange;
  padding-left: 20px;
  margin-top: 20px;
}
.above {
  background: skyblue;
}
.under {
  background: silver;
}

margin:auto;で指定する

margin:auto;で指定する方法もあります。marginとは、autoという値を指定して余白を自動計算する方法です。たとえば、基本的に左側に寄せられる要素を右側に移動させたい場合などに使います。

その場合、以下のようにコードを記述します。

「HTML」

<div class="margin_test">
     要素の周囲に余白を指定

「CSS」

.margin_test {
    border: solid 1px;
    width: 200px;
    height:  200px;
    box-sizing:  border-box;
    background-color: #81ff86;
    margin:  0 0 0 auto;
}

autoを使って余白を指定する方法も、覚えておきましょう。

CSSのmarginを%で指定する

「CSS」のmarginを%で指定する方法もあります。%で指定する場合は、基本的に上下の余白を決める場合であれば、ほとんど使用しません。一方で、%を使うことで親要素の幅に対する比率が計算されるので、要素の拡大・縮小の設定をする場合にとても便利です。

実際に、親要素の幅(widgh)が決まっている場合は、その親要素の幅を基準にmarginのサイズ変更がおこなわれるので、Webデザインの形状を崩さなくてすみます。

しかし、marginを%で指定する場合、横の%が合計で100%になるようにする必要があるので、使う場合はしっかりと覚えておきましょう。

CSSのmarginが効かない理由とは?

「CSS」のmarginを使っていると、記述しているコードが間違っていないのに反映されない場合があります。そのような時に、何が原因かを調べられれば、スムーズに「CSS」のmarginを反映させられるでしょう。

ここでは、「CSS」のmarginが効かない理由を2つ解説します。

marginが相殺されている

marginが反映されない原因として、まずmarginの相殺が考えられます。

marginの相殺とは、隣り合う2つのブロック要素に各々設定したmarginが重なり合って、片方に設定したmarginの値が機能しなくなることです。

marginは、2つブロック要素に設定した値を足し算するのではなく、値が大きい方が優先されてしまいます。marginが相殺されていると、以下のようなコードになります。

.container {
  margin: 0 auto;
  width: 500px;
}

.block {
  margin-top: 30px;
  margin-bottom: 50px;
  background-color: yellow;
}

.block2 {
  margin-top: 80px;
}

上記の場合、.block1要素のmargin-bottomが50px、.block2要素のmargin-topが80pxのため、.block2要素のmarginが優先されます。そのため、「CSS」のmarginが効かないときは、marginが相殺されていないか確認してみましょう。

インライン要素を対象にしている

インライン要素を対象にしているためmarginが効かないこともあります。

上下のmarginはブロック要素、インラインブロック要素が対象となるので、インライン要素に設定しているを場合確認しましょう。

<span>あいうえお</span>

span {
   /*←上下のmarginは効かない*/
  margin: 50px 0; 
}

以上のように、インライン要素の上下に余白を設定したい場合は、paddingやインライン要素をmarginを設定したブロック要素の中に入れた対応が効果的です。

span {
   /*inline-block要素、もしくはblock要素にする*/
  margin: 50px 0;
  display: inline-block; 
}

インライン要素には、効果のない「CSS」がいくつかあるので、これから「CSS」を学習する方は注意してください。

CSSのmarginをブラウザで確認する方法

「CSS」のmarginの機能が効いているかは、ブラウザの検証機能を使用することで確認できます。エディタ上でコードを正しく記述したと思っていても、実際にmarginが効いているかどうかの判断は難しいです。

しかし、ブラウザに搭載されていれる検証機能を使えば、marginを使った結果、どのようにWebデザインが構成されているか確認できます。

具体的な確認方法は、以下の手順です。

  1. Google Chromeのデベロッパーツールを開く
  2. デベロッパーツールを開いて「command+Shift+c」を押して確認箇所を参照する
  3. marginがブラウザ上で確認できたら問題なく動いているか見る

主に以上の手順で、marginをブラウザで確認できます。

CSSのmarginを使うタイミング

「CSS」のmarginは、「HTML」要素の余白を最適なものにし、Webデザインを綺麗に魅せられます。marginを使う主なタイミングは3つです。

  • 要素の間に隙間を設けるタイミング
  • 要素を右や中央に寄せるタイミング
  • 内側の領域の余白を指定するケースには不向きなタイミング

「CSS」のmarginを使うことによって、効果的に余白を設定できます。

要素の間に隙間を設ける

いくつかの要素が並んでいる間に隙間を設ける場合、「CSS」のmarginを使います。要素と要素の間は外側の余白なので、marginで幅のサイズを指定して余白を設けましょう。

要素の間に隙間を設ける場合は、以下のようなコードを記述します。

「HTML」

<div class="margin_test-wrap">
  <div class="margin_test">
       要素の周囲に余白を指定
  </div>
  <div class="margin_test">
       要素の周囲に余白を指定
  </div>
  <div class="margin_test">
       要素の周囲に余白を指定
  </div>
</div>

「CSS」

.margin_test {
    border: solid 1px;
    width: 200px;
    height:  200px;
    box-sizing:  border-box;
    background-color: #81ff86;
    float:  left;
    margin:  10px;
}

以上のように「HTML」と「CSS」の記述をおこなうことで、要素の間に隙間を設けることができます。

要素を右や中央に寄せる

要素を左側から右や中央に寄せるタイミングでも、「CSS」のmarginを使えます。

「HTML」

<div class="margin_test right_test">
     右寄せ!
</div>
<div class="margin_test center_test">
     中央寄せ!
</div>

「CSS」

.margin_test {
    border: solid 1px;
    width: 200px;
    height:  200px;
    box-sizing:  border-box;
    background-color: #81ff86;
}

.right_test {
    margin: 0 0 0 auto;
}

.center_test {
    margin:  0 auto;
}

上記の書き方はショートハンドと呼ばれ、上下左右のmarginを個別に指定する必要がない場合にまとめて記述する際に使用されます。要素を右や中央に寄せる場合によく使われるためおすすめです。

またmargin: 0 auto;と0を記述していますが、0をなくしmargin: auto;としても問題ありません。古いバージョンのInternet Explorerでは、0を付けないとmarginが効かないため、その名残で今も記述しているコードが多いです。

内側の領域の余白を指定するケースには不向き

「CSS」のmarginは、「HTML」要素の内側領域の余白を指定するケースには不向きなので、そのような場合はpaddingを使うようにします。

paddingであれば、要素の内側の余白を指定することができるので、上記のようなケースでも問題なく動作が可能です。そのため「CSS」を扱う場合、marginのマスターは大切ですが、paddingもしっかりマスターしておきましょう。

paddingもマスターしていれば、上記のようなケースやその他要素の内側の余白を指定する場合に効果的です。

CSSのmarginの使い方を把握して自由にレイアウトを設定しよう

「CSS」のmarginは、Webサイトのレイアウトを決めたり、ユーザーのサイト視認性を向上させたりと大切なプロパティのひとつです。「CSS」を学習し始めた方の多くは、marginの習得に苦戦する方も多いですが、しっかりとマスターすれば自由にレイアウトを設定でき利便性が高いです。

そのため、これから「CSS」のmarginを扱う方や学習し始める方は、ぜひ本記事を参考にして効果的に使えるようにしておきましょう。

アクセスランキング 人気のある記事をピックアップ!

    コードカキタイがオススメする記事!

    1. 子供におすすめのプログラミングスクール10選!学習メリットや教室選びのコツも紹介

      2024.01.26

      子供におすすめのプログラミングスクール10選!学習メリットや教室選びのコツも紹介

      #プログラミングスクール

    2. 【完全版】大学生におすすめのプログラミングスクール13選!選ぶコツも詳しく解説

      2022.01.06

      【完全版】大学生におすすめのプログラミングスクール13選!選ぶコツも詳しく解説

      #プログラミングスクール

    3. 【未経験でも転職可】30代におすすめプログラミングスクール8選!

      2024.01.26

      【未経験でも転職可】30代におすすめプログラミングスクール8選!

      #プログラミングスクール

    4. 初心者必見!独学のJava学習方法とおすすめ本、アプリを詳しく解説

      2024.01.26

      初心者必見!独学のJava学習方法とおすすめ本、アプリを詳しく解説

      #JAVA

    5. 忙しい社会人におすすめプログラミングスクール15選!失敗しない選び方も詳しく解説

      2024.01.26

      忙しい社会人におすすめプログラミングスクール15選!失敗しない選び方も詳しく解説

      #プログラミングスクール

    1. 【無料あり】大阪のおすすめプログラミングスクール14選!スクール選びのコツも紹介

      2022.01.06

      【無料あり】大阪のおすすめプログラミングスクール14選!スクール選びのコツも紹介

      #プログラミングスクール

    2. 【目的別】東京のおすすめプログラミングスクール20選!スクール選びのコツも徹底解説

      2024.01.26

      【目的別】東京のおすすめプログラミングスクール20選!スクール選びのコツも徹底解説

      #プログラミングスクール

    3. 【無料あり】福岡のおすすめプログラミングスクール13選!選び方も詳しく解説

      2024.01.26

      【無料あり】福岡のおすすめプログラミングスクール13選!選び方も詳しく解説

      #プログラミングスクール

    4. 【徹底比較】名古屋のおすすめプログラミングスクール13選!選び方も詳しく解説

      2024.01.26

      【徹底比較】名古屋のおすすめプログラミングスクール13選!選び方も詳しく解説

      #プログラミングスクール

    5. 【徹底比較】おすすめのプログラミングスクール18選!失敗しない選び方も徹底解説

      2024.01.26

      【徹底比較】おすすめのプログラミングスクール18選!失敗しない選び方も徹底解説

      #プログラミングスクール