CSS の margin
プロパティは、要素の全四辺のマージン領域を設定します。これはすべての個別のマージン (margin-top
, margin-right
, margin-bottom
, margin-left
) を一度に設定する一括指定です。
このデモのソースファイルは GitHub リポジトリに格納されています。デモプロジェクトに協力したい場合は、 https://github.com/mdn/interactive-examples をクローンしてプルリクエストを送信してください。
top および bottom のマージンは、 <span>
または <code>
などの置換要素ではないインライン要素には効果がありません。
メモ: マージンは要素の周りに追加の領域を作成します。それに対して、 padding
は要素内に追加の領域を作成します。
構文セクション
/* 四辺すべてに適用 */
margin: 1em;
margin: -3px;
/* 上下 | 左右 */
margin: 5% auto;
/* 上 | 左右 | 下 */
margin: 1em auto 2em;
/* 上 | 右 | 下 | 左 */
margin: 2px 1em 0 auto;
/* グローバル値 */
margin: inherit;
margin: initial;
margin: unset;
margin
プロパティは1~4つの値を使って指定することができます。それぞれの値は <length>
、 <percentage>
、 または auto
キーワードです。負の数を指定すると、要素を既定よりも隣と近づけて描画します。
- 値が1つ指定された場合、全四辺に同じマージンが適用される。
- 値が2つ指定された場合、1つ目のマージンは上下、2つ目は左右の辺に適用される。
- 値が3つ指定された場合、1つ目のマージンは上、2つ目は左右、3つ目は下の辺に適用される。
- 値が4つ指定された場合、マージンはそれぞれ上、右、下、左の順(時計回り)に適用される。
値セクション
length
- 固定値によるマージンの寸法です。
<percentage>
- 内包ブロックの width に対するパーセントによるマージンの寸法です。
auto
- ブラウザーが適切なマージンを選択して使用します。例えば、特定の場合に要素を中央揃えするためにこの値を使用します。
形式文法セクション
[ <length> | <percentage> | auto ]{1,4}
例セクション
単純な例セクション
HTML
<div class="center">This element is centered.</div>
<div class="outside">This element is positioned outside of its container.</div>
CSS
.center {
margin: auto;
background: lime;
width: 66%;
}
.outside {
margin: 3rem 0 0 -3rem;
background: cyan;
width: 66%;
}
その他の例セクション
margin: 5%; /* 全辺: 5% のマージン */
margin: 10px; /* 全辺: 10px のマージン */
margin: 1.6em 20px; /* 上と下: 1.6em のマージン */
/* 左と右: 20px のマージン */
margin: 10px 3% -1em; /* 上: 10px のマージン */
/* 左と右: 3% のマージン */
/* 下: -1em のマージン */
margin: 10px 3px 30px 5px; /* 上: 10px のマージン */
/* 右: 3px のマージン */
/* 下: 30px のマージン */
/* 右: 5px のマージン */
margin: 2em auto; /* 上と下: 2em のマージン */
/* ボックスは水平方向に中央 */
margin: auto; /* 上と下: 0 のマージン */
/* ボックスは水平方向に中央 */
メモセクション
水平方向の中央揃えセクション
最近のブラウザーで何かを中央揃えしたい場合は、 display: flex; justify-content: center;
を使用することができます。
しかし、 IE8-9 のような古いブラウザーはフレックスボックスレイアウトに対応していないため、これは利用できません。親要素内で要素を中央揃えするのであれば、 margin: 0 auto;
を使用してください。
マージンの相殺セクション
要素の上下のマージンは、相殺されて2つのマージンのうち大きい方を取る単一のマージンになることがあります。詳しくはマージンの相殺の理解を参照してください。
仕様書セクション
仕様書 | 状態 | 備考 |
---|---|---|
CSS Basic Box Model margin の定義 | 草案 | 有意な変更なし。 |
CSS Transitions margin の定義 | 草案 | margin をアニメーション可能として定義。 |
CSS Level 2 (Revision 1) margin の定義 | 勧告 | インライン要素における top および bottom マージンの効果を削除。 |
CSS Level 1 margin の定義 | 勧告 | 初回定義 |
初期値 | 一括指定の各プロパティとして
|
---|---|
適用対象 | table-caption , table , inline-table 以外の表の display 種別を除くすべての要素。。 ::first-letter にも適用されます。 |
継承 | なし |
パーセンテージ | 包含ブロックの幅 |
メディア | 視覚 |
計算値 | 一括指定の各プロパティとして
|
アニメーションの種類 | length |
正規順序 | 形式文法で定義される一意のあいまいでない順序 |
ブラウザーの対応セクション
デスクトップ | モバイル | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
margin | Chrome 完全対応 1 | Edge 完全対応 12 | Firefox 完全対応 1 | IE 完全対応 3 | Opera 完全対応 3.5 | Safari 完全対応 1 | WebView Android 完全対応 1 | Chrome Android 完全対応 あり | Firefox Android 完全対応 4 | Opera Android 完全対応 10.1 | Safari iOS 完全対応 1 | Samsung Internet Android 完全対応 あり |
auto | Chrome 完全対応 1 | Edge 完全対応 12
| Firefox 完全対応 1 | IE 完全対応 6
| Opera 完全対応 3.5 | Safari 完全対応 1 | WebView Android 完全対応 37 | Chrome Android 完全対応 18 | Firefox Android 完全対応 4 | Opera Android ? | Safari iOS ? | Samsung Internet Android ? |
凡例
- 完全対応
- 完全対応
- 実装状況不明
- 実装状況不明
- 実装ノートを参照してください。
- 実装ノートを参照してください。