前提として、要素の幅とは、marginもborderもpaddingも含まないピクセル幅のことを指します。ただしその要素のbox-sizingborder-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-widthmin-widthも同様です。

height

  • 要素自身のheight%以外で指定されている
  • 包括ブロックのheight%以外で指定されている
  • %指定だとしても、html要素(:root)までの祖先要素全てに高さが指定されている

のいずれかに当てはまるケースで、このプロパティの指定が効きます。

max-heightmin-heightも同様です。

margin

包括ブロックの幅

margin-topmargin-bottomも同様に、包括ブロックの幅です。

padding

包括ブロックの幅

padding-toppadding-bottomも同様に、包括ブロックの幅です。

top, bottom

包括ブロックの高さ

right, left

包括ブロックの幅

font-size

親要素のフォントサイズに対する割合

単位emとほぼ同じで、200%2emと同じ大きさになります。

line-height

その要素のフォントサイズに対する割合

単位emや単位なしとほぼ同じです。


参考リンク