CSS辞典 marginプロパティ、margin-top,margin-right、margin-bottom、margin-leftの解説

ボックスの外側の余白をまとめて指定する「marginプロパティ」、ボックスの外側の余白を個別で指定する「margin-topプロパティ」「margin-rightプロパティ」「margin-bottomプロパティ」「margin-leftプロパティ」の使用方法を記載

対応バージョン:CSS3/2.1

対応ブラウザ

ruby要素,rb要素,rt要素、rp要素、rtc要素 対応ブラウザ:chrome
ruby要素,rb要素,rt要素、rp要素、rtc要素 対応ブラウザ:firefox
ruby要素,rb要素,rt要素、rp要素、rtc要素 対応ブラウザ:safari
ruby要素,rb要素,rt要素、rp要素、rtc要素 対応ブラウザ:ms edge
ruby要素,rb要素,rt要素、rp要素、rtc要素 対応ブラウザ:ms ie
ruby要素,rb要素,rt要素、rp要素、rtc要素 対応ブラウザ:opera
初期値 各プロパティに準じる
適用される要素内部テーブル要素以外のすべての要素
モジュールCSS Basic Box Model
継承なし

概要・使用方法

{ margin: -top -right -bottom -left;}

marginプロパティは、外側の余白を一括で指定することができます。値は、長さのサイズ値またはパーセント値、キーワード「auto」が指定できます。マージンには負の値を指定することもできます。それによって隣接する要素ボックスを重ねることができます。

また、marginプロパティは要素の余白4辺をまとめて一度で設定することができます。

  • 値を4個指定した場合、上右下左の順でそれぞれ設定します。
  • 値を3個指定した場合は、上右下の指定となり左右のマージンは同じ値が設定されます
  • 値が2個の指定した場合は、上下、左右のマージンが同じ値になります
  • 値が1個の場合は、上下左右のマージンすべて同じになります。
marginの解説図

指定できる値(幅)

auto自動的に適切なマージンが適用されます。ボックスの幅を指定したうえで左右のマージンをautoにすると、ボックスは水平方向の中央に揃います。
数値+単位単位付きの数値で指定します。負の値も指定できます。
%値%値で指定します。負の値も指定できます。値は包含ブロックの幅に対する割合となります。これはmargin-top、margin-bottomに対する%値の算出でも同様です。

数値+単位で指定できる値は、以下を参照。

margin-topプロパティ、margin-rightプロパティ、margin-bottomプロパティ、margin-leftプロパティ

初期値 0
適用される要素内部テーブル要素以外のすべての要素(table、table-captionを除くテーブル関連要素)以外のすべての要素
モジュールCSS Basic Box Model
継承なし
{ margin-top: 幅;}
{ margin-right: 幅;}
{ margin-bottom: 幅;}
{ margin-left: 幅;}

要素の囲み線の外側の、余白の領域である「margin(マージン)」を指定します。margin-top(上)、margin-right(右)、margin-bottom(下)、margin-left(左)の各プロパティで、それぞれの方向のマージンの大きさを個別で指定できます。値は、長さのサイズ値またはパーセント値、キーワード「auto」が指定できます。マージンには負の値を指定することもできます。それによって隣接する要素ボックスを重ねることができます。

指定できる値(幅)

marginプロパティと同様

下記の例のような場合、垂直方向に隣接するボックスのマージンは相殺されます。大きい値が採用されます。下記の場合は50pxとなります。

また、値が両方ともマイナスの場合は0に近い値が採用され、片方がマイナスの場合は、両方の合計が採用されます。

.box1{margin-bottom:30px;}
.box2{margin-top:50px;}

サンプルコード

<!DOCTYPE html>
<html lang="ja">
  <head>
    <title>CSS marginプロパティサンプルページ</title>
    <meta charset="uft-8">
    <style>
           .disp{display:inline-block;}
           .box-style1{
               width: 20em;
               height: 5em;
               margin:0em;
               border-style:solid;
               border-width:0.2em;
           }
           .box-style2{
               width: 20em;
               height: 5em;
               margin:50px;
               border-style:solid;
               border-width:0.2em;
           }
           .box-style3{
               width: 20em;
               height: 5em;
               margin:5em;
               border-style:solid;
               border-width:0.2em;
           }
           .box-style4{
               width: 20em;
               height: 5em;
               margin:10px 20px 30px 40px;
               border-style:solid;
               border-width:0.2em;
           }
           .box-style5{
               width: 20em;
               height: 5em;
               margin-top:2em;
               border-style:solid;
               border-width:0.2em;
           }
           .box-style6{
               width: 20em;
               height: 5em;
               margin-right:2em;
               border-style:solid;
               border-width:0.2em;
           }
           .box-style7{
               width: 20em;
               height: 5em;
               margin-bottom:2em;
               border-style:solid;
               border-width:0.2em;
           }
           .box-style8{
               width: 20em;
               height: 5em;
               margin-left:2em;
               border-style:solid;
               border-width:0.2em;
           }
    </style>
  </head>
  <body>
      <div class="disp">
          <div class="box-style1"><p>マージン0</p></div>
          <div class="box-style2"><p>マージン50px</p></div>
          <div class="box-style3"><p>マージン5em</p></div>
          <div class="box-style4"><p>margin:10px 20px 30px 40px;</p></div>
      </div>
      <div class="disp">
          <div class="box-style5"><p>margin-top:2em;</p></div>
          <div class="box-style6"><p>margin-right:2em;</p></div>
          <div class="box-style7"><p>margin-bottom:2em;</p></div>
          <div class="box-style8"><p>margin-left:2em;</p></div>
      </div>
  </body>
</html>

マージン0

マージン50px

マージン5em

margin:10px 20px 30px 40px;

margin-top:2em;

margin-right:2em;

margin-bottom:2em;

margin-left:2em;

chromeブラウザ実行結果

chrome

Firefox ブラウザ実行結果

Firefox


edgeブラウザ実行結果

edge

operaブラウザ実行結果

opera