前提として、要素の幅とは、marginもborderもpaddingも含まないピクセル幅のことを指します。ただしその要素のbox-sizing
がborder-box
になっていた場合は、marginは含めずborderとpaddingを含めた幅となります。
margin
border ... box-sizing: border-box;の場合はこのborderまでを含んだ幅
padding
content ... 通常はこの幅
div要素やp要素などはデフォルトでdisplay: block
、つまりブロック要素ですが、CSSでdisplay: inline;
と指定すればインライン要素として扱われます。逆にa要素やspan要素といったインライン要素は、display: inline-block;
などでブロック要素にできます。
包括ブロックとは、直近のブロック要素またはページのビューポートのことです。
<section style="position: relative;"> <div> <p>この要素の包括ブロックは、直近のブロック要素つまりdiv要素</p> <p style="position: absolute;">この要素の包括ブロックは、positionがstaticでない直近の親つまりsection要素</p> <p style="position: fixed;">この要素の包括ブロックは、ページのビューポート</p> </div> <span> <p>この要素の包括ブロックは、直近のブロック要素つまりspanではなくsection要素</p> </span></section><section> <span style="display: inline-block;"> <p>この要素の包括ブロックは、直近のブロック要素つまりdisplayがinline-blockとなっているspan要素</p> </span></section>
MDNの解説には、もっと詳しい情報があります。
width
包括ブロックの幅
max-width
とmin-width
も同様です。
height
- 要素自身の
height
が%
以外で指定されている - 包括ブロックの
height
が%
以外で指定されている %
指定だとしても、html要素(:root
)までの祖先要素全てに高さが指定されている
のいずれかに当てはまるケースで、このプロパティの指定が効きます。
max-height
とmin-height
も同様です。
margin
包括ブロックの幅
margin-top
とmargin-bottom
も同様に、包括ブロックの幅です。
padding
包括ブロックの幅
padding-top
とpadding-bottom
も同様に、包括ブロックの幅です。
top, bottom
包括ブロックの高さ
right, left
包括ブロックの幅
font-size
親要素のフォントサイズに対する割合
単位em
とほぼ同じで、200%
は2em
と同じ大きさになります。
line-height
その要素のフォントサイズに対する割合
単位em
や単位なしとほぼ同じです。
参考リンク