言語
日本語
English

Caution

お使いのブラウザはJavaScriptが無効になっております。
当サイトでは検索などの処理にJavaScriptを使用しています。
より快適にご利用頂くため、JavaScriptを有効にしたうえで当サイトを閲覧することをお勧めいたします。

CSS辞典

  1. トップページ
  2. CSS辞典
  3. box-sizing

box-sizing

ボックスモデル(要素の大きさ)の算出方法を変更します。

サンプルコード

div.test { box-sizing: content-box;}
div.test1 { box-sizing: border-box;}

指定可能な値一覧

概要
content-boxwidth』プロパティ、『height』プロパティで指定された大きさにパディング、ボーダー、マージンの大きさを含みません。この『content-box』が初期値です。
border-boxwidth』プロパティ、『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>

対応ブラウザ

Chrome Chrome
10 以降
9
8
7
6
5
4
3
2
↑ prefix『-webkit-』が必要
Firefox Firefox
29 以降
28
27
26
25
24
23
22
21
↑ prefix『-moz-』が必要
Safari Safari
5.1 以降
4
3
↑ prefix『-webkit-』が必要
2 以前 ×
Edge Edge
12 以降
全バージョンで対応しています
IE IE
11
10
9
8
7 ×
6 ×
Opera Opera
7 以降
6 以前 ×
iOS Safari iOS Safari
6 以降
5
4
3
2
1
↑ prefix『-webkit-』が必要
Android Android Browser
4 以降
2
↑ prefix『-webkit-』が必要
Chrome Android Chrome Android
最新版
デスクトップ版と同等の対応です
Firefox Android Firefox Android
最新版
デスクトップ版と同等の対応です

※ バージョン情報は MDN / Can I Use に基づいています。

概要

ボックスモデル(要素の大きさ)の算出方法を変更します。

値に『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;
}

記事の間違いや著作権の侵害等ございましたらお手数ですがまでご連絡頂ければ幸いです。