CSS 〜 レイアウトモデル:ボックス

いつも忘れるので、ボックスのpadding,border,marginプロパティ,widthプロパティ,heightプロパティを図で理解する。

まず、CSSはボックス単位を基本にしてレイアウトされる。
それで、1つのボックスは図のように4つの部分から構成される。

  • content:内容
  • padding:contentとborderの間の余白
  • border:境界線
  • margin:borderと他のボックスの間の領域

さらに、contentの幅と高さはwidthプロパティとheightプロパティで指定することができる*1

padding領域をの上下左右の幅、borderの上下左右の幅も指定することができる。これは図とコードの両方を見比べた方が理解しやすい。

<style>
#cssGradient h2{
                /* padding: t r b l と書くと上下左右の幅がそれぞれ、t,b,l,rとなる。図と比較してほしい。*/
		padding: 1em 0 1em 0;
                
                /* borderの幅もpaddingと同様の方法で指定できる*/
                /* 下記はborder: 0と指定しても同じ*/
                border-width: 0 0 0 0;
	}
</style>
<html>
<div id="cssGradient">
<h1>CSS3でグラデーション</h1>
<input type="button" id="gradient1CSS" value="gradientをつける">
<h2 id="gradient1">background:-moz-linear-gradient(gradientの方向、開始色、中間色 中間色の位置、終了色)</h2>
</div>
</html>

他にも、境界線の色をborder-colorで指定したり、境界線のスタイルをborder-styleで指定することができる。

*1:インラインボックスでは、widthやheightは基本的に効かない。これは、親ボックスによって自動的に調整されるためだ。