CSS入門 | CSSボックスモデル | Margin
Margin
marginプロパティは、borderと隣接する要素の間隔であるmargin領域のサイズを設定する。
このmargin領域はpadding領域とは異なり、background-colorプロパティで設定する背景色の影響を受けない。
CSSを使うと、margin領域のサイズを方向ごとに個別に設定できる。
marginプロパティ
CSSでは、HTML要素のmargin領域を設定するために次のプロパティを提供する。
| プロパティ | 説明 |
|---|---|
| margin | すべてのmarginプロパティを使ったスタイルを1行で設定できる。 |
| margin-top | 上側のmargin値を設定する。 |
| margin-right | 右側のmargin値を設定する。 |
| margin-bottom | 下側のmargin値を設定する。 |
| margin-left | 左側のmargin値を設定する。 |
marginプロパティ値を負の値に設定して、該当要素をほかの要素の上に重ねることもできる。
<style>
div.mar {
margin-top: -25px;
margin-right: 10px;
margin-bottom: 30px;
margin-left: 100px;
}
</style>
marginプロパティ値をinheritに設定すると、親要素のmarginプロパティ値をそのまま継承する。
<style>
div.parent { height: 100px; margin-left: 100px; }
div.child { background-color: #FFF8DC; margin-left: inherit; }
</style>
marginの省略表記
すべてのmarginプロパティを使ったスタイルを1行で設定できる。
<style>
div.four { margin: 20px 50px 30px 50px; }
div.three { margin: 20px 50px 30px; }
</style>
4つのmargin値を持つ場合は、top、right、bottom、leftの順に設定する。
例: margin: 10px 20px 30px 40px;
これは次の4行のコードと同じ意味を持つ。
margin-top: 10px;
margin-right: 20px;
margin-bottom: 30px;
margin-left: 40px;
3つのmargin値を持つ場合は、top、rightとleft、bottomの順に設定する。
例: margin: 10px 20px 30px;
これは次の4行のコードと同じ意味を持つ。
margin-top: 10px;
margin-right: 20px;
margin-bottom: 30px;
margin-left: 20px;
2つのmargin値を持つ場合は、topとbottom、rightとleftの順に設定する。
例: margin: 10px 20px;
これは次の4行のコードと同じ意味を持つ。
margin-top: 10px;
margin-right: 20px;
margin-bottom: 10px;
margin-left: 20px;
1つのmargin値を持つ場合は、すべてのmargin値を同じ値に設定する。
例: margin: 10px;
これは次の4行のコードと同じ意味を持つ。
margin-top: 10px;
margin-right: 10px;
margin-bottom: 10px;
margin-left: 10px;
margin値にautoを使う理由
marginプロパティ値をautoに設定すると、Webブラウザーが水平方向のmargin値を自動で設定する。
つまり、該当HTML要素の左と右のmarginが自動で設定される。
その結果、その要素はそれを含んでいる親要素のちょうど中央に配置される。
<style>
div {
border: 2px solid teal;
width: 300px;
margin: auto;
}
</style>