CSS フレームワークモデルの概要

CSSフレームモデル(ボックスモデル)は、要素ボックスが要素内容を処理する方法、内余白マージン の方法で。

CSS フレームワークモデルの概要

CSS フレームワークモデル

要素ボックスの最も内側は実際の内容であり、内容を直接囲むのは内余白です。内余白は要素の背景を表示します。内余白の边缘は枠です。枠以外はマージンで、マージンのデフォルトは透明であり、その後の要素を遮りません。

ヒント:背景は、内容と内余白、枠からなるエリアに適用されます。

内余白、枠とマージンはオプションです。デフォルト値は0ですが、多くの要素はユーザーエージェントのスタイルシートでマージンと内余白が設定されます。要素のマージンと内余白を0に設定することで、これらのブラウザのスタイルをオーバーライドできます。これはそれぞれに行うことができますが、ユニバーサルセレクタを使用してすべての要素に設定することもできます:

* {
  margin: 0;
  padding: 0;
}

CSSでは、widthとheightは内容エリアの幅と高さを指します。内余白、枠とマージンの増加は内容エリアのサイズに影響を与えませんが、要素ボックスの総サイズを増加させます。

ボックスの各側に10ピクセルのマージンと5ピクセルの内余白があると仮定します。この要素ボックスが100ピクセルに達することを望む場合、内容の幅を70ピクセルに設定する必要があります。以下の図を参照してください:

CSS フレームワークモデルの例
#box {
  width: 70px;
  margin: 10px;
  padding: 5px;
}

ヒント:内余白、枠とマージンは、要素のすべての側に適用できますが、それぞれの側にのみ適用することもできます。

ヒント:マージンは負の値でも可能で、多くの場合、負の値のマージンを使用する必要があります。

ブラウザの互換性

ページに適切なDTDが設定されると、ほとんどのブラウザは上の図に示されるように内容を表示します。しかし、IE 5と6の表示は正しくありません。W3Cの規格によると、要素の内容が占める空間はwidth属性で設定され、内容の周りのpaddingとborderの値は別で計算されます。残念ながら、IE5.Xと6は怪しいモードで独自の非標準モデルを使用しています。これらのブラウザのwidth属性は、内容の幅ではなく、内容、内余白と枠の幅の合計です。

この問題を解決する方法はありますが、現時点で最善の解決策はこの問題を避けることです。つまり、要素に指定された幅を持つ内余白を追加するのではなく、親要素や子要素に内余白や外余白を追加しようと試みます。

用語翻訳

  • element: 要素。
  • padding: 内余白、あるいは充填と呼ばれることもあります。
  • border: 枠線。
  • margin: 外余白、あるいは空白や空白エッジと呼ばれることもあります。

codew3cでは、paddingとmarginを統一して内余白と外余白と呼びます。枠線内の空白は内余白、枠線外の空白は外余白です。簡単に覚えられますか:()