備忘録的プログラミングリファレンス

box-sizing プロパティ

 box-sizing プロパティは、paddingborder の大きさをエレメントの width、height の値内に収めるか、収めないかを指定するプロパティです。

 paddingborder の指定によってエレメント全体が想定外に大きくしないようにすることができます。

padding や border のサイズをエレメントの width、height の指定値内に収める
box-sizing: border-box;

詳しくはExampleを参照してください

 デフォルトでは paddingborder のサイズを指定するとその分だけエレメントが大きくなります。

 box-sizing プロパティの border-box 値は、paddingborder をエレメントの領域内に含めます。 そのために利用できる領域が小さくなります。
 さらに注意点として、border-box を設定した場合にその子エレメントの位置がズレることがあります。

ページ内 Index

構文(Syntax)

 box-sizing の構文についてです。

CSS

box-sizing: content-box | border-box ;

DOM ( JavaScript )

値の取得
String = object.style.boxSizing;
値の設定
object.style.boxSizing=" content-box | border-box ";

 グローバル値として initialinheritrevertunset も使用することができます。

値(Values)

 以下は box-sizing に指定できる値です。

Value摘要
content-box初期値(default値)。paddingとborderのサイズをエレメントのサイズ指定値に含めない
border-boxpaddingとborderのサイズをエレメントのサイズ指定値に含める

 その他に以下のようなグローバル値があります。

キーワード値機能
initial仕様で決められた設定値
inherit親エレメントの設定値を継承
revertブラウザで設定された値
unset継承値が優先される。値が継承値されるプロパティでは inherit に同じ。継承されない場合は revert に同じ

 指定値を固定化する場合は !important 宣言を加えます。

 詳しくは各キーワード値のページを参照してください。

備考(Remarks)

 box-sizing の備考についてです。

初期値(Default value)content-box
継承(Inherited)no
CSS Animationno

Example

 box-sizing の例です。

 box-sizing プロパティは、paddingborder の大きさをエレメントの width、height の値内に収めます。

 以下の例では、box-sizing の値によってエレメントが padding、border のサイズの指定値分だけ大きくなるかを示しています。

 上はデフォルトの値 content-box です。padding や border の値によってエレメントのサイズがより大きくなります。「 width 値+ padding 値+ border 値」になります。

 下は border-box 値です。padding や border はエレメントの width、height の値内に収まるように表示されます。「 width 値 = padding 値 + border 値」になります。

 この例では margin プロパティも指定しています。