box-sizing
box-sizingは、ボックスサイズの計算方法を指定するスタイルです。
解説
heightやwidthのサイズの計算方法を指定できます。
初期値ではheightやwidth値にpadding値やborder値は含まれないので、
例えばdivのCSSにheight:300pxと指定していても、
padding値が10px、border値が1pxならdivの高さは322pxになります。
padding値やborder値を含めて高さを300pxにしたい場合は、
border-sizing:border-box;を指定すればOKです。
構文
構文は以下になります。
box-sizing: content-box;
box-sizing: border-box;
box-sizing: inherit;
値
box-sizingには以下の値が指定できます。
値 | 説明 |
---|---|
content-box | paddingとborderのサイズを幅と高さに含めない |
border-box | paddingとborderのサイズを幅と高さに含める |
inherit | 親要素の設定を継承する |
太字の値は初期値です。
サンプル
div要素のサイズをpadding値、border値含めて200px x 100pxにする
.sample01 {
box-sizing:border-box;
width:200px;
height:100px;
padding:30px;
border:1px solid black;
}
<div class="sample01">あいうえおかきくけこさしすせそたちつてとなにぬねの</div>
あいうえおかきくけこさしすせそたちつてとなにぬねの
height、widthの値を優先するので入り切らない分ははみ出します。
div要素のサイズをpadding値、border値含めずに200px x 100pxにする
.sample02 {
box-sizing:content-box;
width:200px;
height:100px;
padding:30px;
border:1px solid black;
}
<div class="sample02">あいうえおかきくけこさしすせそたちつてとなにぬねの</div>
あいうえおかきくけこさしすせそたちつてとなにぬねの
height、widthのサイズ+paddingサイズ+borderサイズになります。
備考
- box-sizing: border-boxを指定するとボックスのサイズが、
paddingやborderのサイズに影響されなくなるため指定することをおすすです。