Section 11 : 周囲余裕(パディング)

 要素の周囲に空白をとる方法としてマージンを紹介したが,これと似たものにパディングがある。しかし,マージンと異なる点が多くあり,まったく別物と考えた方がよい。

パディング

 パディング(“詰め物”の意)は要素の周囲に空白を設ける。マージンが枠の外側にとられるのに対して,パディングは枠の内側にとられる。パディングは,すべての要素に適用される。

padding-top: (長さ);
padding-bottom: (長さ);
padding-left: (長さ);
padding-right: (長さ);

 長さは単位をつけて与える方法だが,パーセント指定も可能である。基準となるのは,その要素よりひとつ上位の要素の幅,すなわちマージンや枠を指定しないときにその要素がいっぱいに表示できる幅である。padding-top,padding-bottom でも基準になるのが“幅”なので注意されたい。負の値を与えることは許されない。

 この属性は継承されない。また,初期値は“すべて 0”である。

 “その要素よりひとつ上位の要素の幅”という表現は CSS1 仕様書のもので,“その要素より上位で,その中でもっとも下位にあるブロック要素”(CSS2 仕様書の表現)のほうがよいだろう。

 パディングにも短縮属性がある。

padding: (長さ;1 値から 4 値);

というのはほかの短縮属性と同様である。

 一見パディングはマージンとよく似ているが,異なる点が多い。枠を指定した例をあげてみるので,違いを見ていただきたい。

<P STYLE="border: thin solid; margin: 2em;">枠とマージンが指定されています。</P>
<P STYLE="border: thin solid; padding: 2em;">枠とパディングが指定されています。</P>

枠とマージンが指定されています。

枠とパディングが指定されています。

 マージンとパディングは使い分けが必要だということがおわかりいただけると思う。

 IE4/5  パディングが適用されるのはブロック要素と置換要素で,通常のインライン要素には適用されない。

 IE3  パディングはサポートされていない。

 NN4  通常のインライン要素にパディングを指定すると表示が乱れることがある。

マージンとパディング

 枠がある場合マージンとパディングが違うというのは先ほどの例でおわかりいただけたかと思う。しかし,枠がなければ同じかというと,そうではない。

 まずひとつに,背景がある。その要素に指定された背景はマージン領域には適用されないが,パディング領域には適用される。

 もうひとつは,マージンは周囲の配置によって短縮されることがある(First step CSS Section 10 参照)が,パディングはいかなる状況でもスペースが確保される。

 このような違いが生じるのは CSS がボックスをどう構成しているかということによるところが大きい。CSS のボックスは外側から“マージン”“枠”“パディング”そして“要素の内容”,という地球の“地殻”“マントル”“外殻”“内殻”のようなかたちになっているのだが,これは,次の Section でくわしくお話しすることにしよう。

マージンとパディングの違いを簡単にまとめておくことにする。

マージンとパディングの相違
相違点 マージン パディング
とられる場所 枠の外側 枠の内側
背景色 適用されない 適用される
負の値 とれる とれない
キーワード auto 指定できる 指定できない
周囲の状況で 詰まることがある 詰まることはない