ボックスのサイジング法(¶“ボックス寸法”の解釈の仕方)。
名前 | box-sizing
|
---|---|
値 | content-box | border-box |
初期値 | content-box |
適用対象 | [width/height]を受容する、すべての要素 |
継承 | されない |
百分率 | 受容しない |
算出値 | 指定されたキーワード |
正準的順序 | 文法に従う |
アニメーション型 | 離散的 |
box-sizing プロパティは、固定的サイズ(<length> や <percentage> など)を[内容ボックス、ボーダーボックス]のどちらにあてがうかを定義する。それは、すべてのサイズ法プロパティ ― flex-basis も含む ― の解釈に影響する。
content-box
注記: これが、CSS2 により指定される width、height のふるまいであり、既定になる。
<DIV style="border:10px solid red; width:100px; height:100px; padding:10px; box-sizing:content-box; ">テスト</DIV>
border-box
内容のサイズは、[横幅、縦幅]のそれぞれについて、[サイズ法プロパティに指定されたサイズ]から[ボーダー、パディング]のサイズを減算して計算される。内容のサイズは、負になれないので、この計算は 0 以上に切り上げられる。
具体的には、getComputedStyle() を通して公開される使用値も、ボーダー ボックスを参照する。
<DIV style="border:10px solid red; width:100px; height:100px; padding:10px; box-sizing:border-box; ">テスト</DIV>
box-sizing は、[生の <length-percentage> 値、fit-content() などの関数記法内で利用される値]の両者に影響する ― 対照的に、[ auto、min-content ]などの数量的でない値には、波及しない(他が指定されない限り)。
例えば、次のスタイルは、内容ボックスのサイズを 100px に、ボーダー ボックスのサイズを 120px に設定する:
.box { box-sizing: content-box; /* 既定 */ width: 100px; padding-left: 10px; border-left: 10px solid; }