box-sizing
ボックスモデル(要素の大きさ)の算出方法を変更します。
サンプルコード
div.test { box-sizing: content-box;}
div.test1 { box-sizing: border-box;}
指定可能な値一覧
| 値 | 概要 |
|---|---|
| content-box | 『width』プロパティ、『height』プロパティで指定された大きさにパディング、ボーダー、マージンの大きさを含みません。この『content-box』が初期値です。 |
| border-box | 『width』プロパティ、『height』プロパティで指定された大きさにパディング、ボーダーの大きさが含まれます。マージンの大きさは含みません。 |
ブラウザでの表示結果
以下のサンプルのdiv要素には『width: 300px』、『height: 300px』、『padding: 10px』、『border: solid 10px red』と指定しています。
<div style="box-sizing: content-box; width: 300px; height: 300px; border: solid 10px red; padding: 10px; margin: 0 auto;">ここはdiv要素です。『box-sizing: <span style="color: #f00">content-box</span>』と指定しています。『width』プロパティ、『height』プロパティで指定された大きさにパディング、ボーダー、マージンの大きさを含みません。なのでこの要素の大きさは横幅340px、高さ340pxとなります。</div>
<div style="box-sizing: border-box; width: 300px; height: 300px; border: solid 10px red; padding: 10px; margin: 0 auto;">ここはdiv要素です。『box-sizing: <span style="color: #f00">border-box</span>』と指定しています。『width』プロパティ、『height』プロパティで指定された大きさにパディング、ボーダーの大きさが含まれ、マージンの大きさは含みません。なのでこの要素の大きさは横幅300px、高さ300pxとなります。</div>
対応ブラウザ
デスクトップ
9 △
8 △
7 △
6 △
5 △
4 △
3 △
2 △↑ prefix『-webkit-』が必要
28 △
27 △
26 △
25 △
24 △
23 △
22 △
21 △↑ prefix『-moz-』が必要
4 △
3 △↑ prefix『-webkit-』が必要
2 以前 ×全バージョンで対応しています
8 ○
7 ×
6 ×
6 以前 ×モバイル
5 △
4 △
3 △
2 △
1 △↑ prefix『-webkit-』が必要
Android Browser
4 以降 ○
2 △↑ prefix『-webkit-』が必要
デスクトップ版と同等の対応です
デスクトップ版と同等の対応です
概要
ボックスモデル(要素の大きさ)の算出方法を変更します。
値に『content-box』と指定した場合は、『width』プロパティ、『height』プロパティで指定された大きさにパディング、ボーダー、マージンの大きさを含みません。この『content-box』が初期値となります。
<div style="box-sizing: content-box; width: 300px; height: 300px; border: solid 10px red; padding: 10px; margin: 0 auto;">ここはdiv要素です。『box-sizing: <span style="color: #f00">content-box</span>』と指定しています。『width』プロパティ、『height』プロパティで指定された大きさにパディングの大きさ10pxとボーダーの大きさ10pxが加算されるため、この要素の大きさは横幅340px、高さ340pxとなります。</div>
値に『border-box』と指定した場合は、『width』プロパティ、『height』プロパティで指定された大きさにパディング、ボーダーの大きさが含まれます。マージンの大きさは含みません。
<div style="box-sizing: border-box; width: 300px; height: 300px; border: solid 10px red; padding: 10px; margin: 0 auto;">ここはdiv要素です。『box-sizing: <span style="color: #f00">border-box</span>』と指定しています。『width』プロパティ、『height』プロパティで指定された大きさにパディングの大きさ10pxとボーダーの大きさ10pxが含まれるため、この要素の大きさは『width』プロパティ、『height』プロパティで指定した通りの横幅300px、高さ300pxとなります。</div>
ベンダープレフィックスについては、現状ほぼ全ての最新ブラウザでベンダープレフィックスなしで実行できるため、必要ないと考えて頂いて問題ないかと思います。ただし、一部の古いAndroidの標準ブラウザではベンダープレフィックスが必要な場合がありますのでその場合は以下のような形で記述すると良いでしょう。
div.test {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
記事の間違いや著作権の侵害等ございましたらお手数ですがこちらまでご連絡頂ければ幸いです。