カテゴリ: CSS 更新日: 2026/01/05

CSSのbox-sizingを完全解説!content-boxとborder-boxの違いを初心者向けに徹底解説

コンテンツサイズとボックスサイズの違い(box-sizing: content-box / border-box)
コンテンツサイズとボックスサイズの違い(box-sizing: content-box / border-box)

先生と生徒の会話形式で理解しよう

生徒

「先生、CSSで要素のサイズを設定したのに、思ったサイズにならないことがあるんですけど…」

先生

「それはbox-sizingの指定方法が原因かもしれませんよ。」

生徒

「box-sizingってなんですか?よく聞くんですけど、よく分からなくて…」

先生

「じゃあ、content-boxborder-boxの違いを、初心者でも分かるように解説していきましょう。」

1. box-sizingとは?

1. box-sizingとは?
1. box-sizingとは?

CSSのbox-sizingは、要素のサイズをどのように計算するかを決める設定です。ウェブページを作るとき、幅(width)や高さ(height)を指定しても、思った通りのサイズにならないことがあります。その原因のひとつが、このbox-sizingです。

CSSのボックスモデルでは、コンテンツ(文字や画像が入る部分)、パディング(余白)、ボーダー(枠線)、マージン(外側の余白)の4つで要素が構成されています。このうち、サイズ計算にパディングやボーダーを含めるかどうかを切り替えるのがbox-sizingです。

2. content-boxの特徴

2. content-boxの特徴
2. content-boxの特徴

content-boxは、CSSのデフォルト(初期設定)です。widthやheightで指定したサイズが、コンテンツ部分だけのサイズになります。そのため、パディングやボーダーを追加すると、要素全体のサイズが大きくなります。


<style>
.box-content {
    box-sizing: content-box;
    width: 200px;
    padding: 20px;
    border: 5px solid blue;
    background-color: lightyellow;
}
</style>

<div class="box-content">content-boxのボックス</div>
ブラウザ表示

この例では、コンテンツ部分の幅が200pxですが、パディング20pxが両側に、ボーダー5pxが両側に加わるので、全体の幅は200 + 20×2 + 5×2 = 250pxになります。

3. border-boxの特徴

3. border-boxの特徴
3. border-boxの特徴

border-boxでは、widthやheightで指定したサイズにパディングとボーダーも含めるようになります。つまり、見た目のサイズが指定通りになり、余白を追加しても全体サイズが変わりません。


<style>
.box-border {
    box-sizing: border-box;
    width: 200px;
    padding: 20px;
    border: 5px solid green;
    background-color: lightcyan;
}
</style>

<div class="box-border">border-boxのボックス</div>
ブラウザ表示

この場合、widthで指定した200pxの中にパディングやボーダーが含まれるので、要素全体の幅はきっちり200pxのままです。レイアウトを整えるときに便利な設定です。

4. content-boxとborder-boxの違いを例で比較

4. content-boxとborder-boxの違いを例で比較
4. content-boxとborder-boxの違いを例で比較

両者の違いを分かりやすくするために、同じサイズ指定で2つのボックスを並べて表示してみます。


<style>
.box-container {
    display: flex;
    gap: 20px;
}
.box1, .box2 {
    width: 200px;
    padding: 20px;
    border: 5px solid black;
    background-color: lightgray;
}
.box1 {
    box-sizing: content-box;
}
.box2 {
    box-sizing: border-box;
}
</style>

<div class="box-container">
    <div class="box1">content-box</div>
    <div class="box2">border-box</div>
</div>
ブラウザ表示

左のcontent-boxは全体のサイズが大きくなり、右のborder-boxは幅が200pxに収まっています。レイアウトで「揃えたはずなのにズレてしまう…」というときは、この違いが原因になっている場合が多いです。

5. 実践的な使い方とおすすめ設定

5. 実践的な使い方とおすすめ設定
5. 実践的な使い方とおすすめ設定

最近のWeb制作では、要素のサイズを直感的に管理しやすいborder-boxが主流です。全体のレイアウトを崩さずにパディングを調整できるので、デザインが安定します。

多くの開発者は、以下のようにCSSの全要素にborder-boxを適用しています。


<style>
* {
    box-sizing: border-box;
}
</style>

<div>全ての要素にborder-boxを適用</div>
ブラウザ表示

この方法を使えば、すべての要素がborder-boxで統一されるため、サイズ管理がしやすくなります。特にレスポンシブデザインや複雑なレイアウトを扱うときに便利です。

6. content-boxを選ぶケース

6. content-boxを選ぶケース
6. content-boxを選ぶケース

とはいえ、content-boxが役に立つ場面もあります。例えば、正確にコンテンツの幅だけをコントロールしたい場合です。文章や画像の領域をぴったり指定したいときには、content-boxを使うことで余白を自由に追加できます。

7. content-boxとborder-boxの違いを整理

7. content-boxとborder-boxの違いを整理
7. content-boxとborder-boxの違いを整理

最後に、違いを簡単にまとめておきます。

  • content-box:widthとheightはコンテンツ部分だけ。パディングやボーダーを足すと全体のサイズが大きくなる。
  • border-box:widthとheightにパディングやボーダーも含む。見た目のサイズが指定通りになる。

まとめ

まとめ
まとめ

box-sizingを理解することの重要性

ここまで、CSSのbox-sizingについて、content-boxとborder-boxの違いを中心に学んできました。CSSでレイアウトを作成するとき、「幅を指定したのに思った通りに並ばない」「パディングを足したらデザインが崩れた」といった経験は、多くの初心者が一度はつまずくポイントです。その原因の多くは、CSSのボックスモデルとbox-sizingの理解不足にあります。

content-boxはCSSの初期設定であり、widthやheightがコンテンツ領域のみを指します。そのため、パディングやボーダーを加えるたびに要素全体のサイズが変わり、計算が複雑になります。一方、border-boxは指定したwidthやheightの中にパディングとボーダーを含めるため、見た目のサイズが直感的に把握しやすく、レイアウトの安定性が高まります。

実務や学習でborder-boxがよく使われる理由

近年のWeb制作やフロントエンド開発では、border-boxを基本設定として使うケースが非常に多くなっています。理由は明確で、レスポンシブデザインや複雑なUIレイアウトにおいて、要素のサイズ管理が圧倒的に楽になるからです。特にBootstrapやCSSフレームワークを使う場合、box-sizingの考え方を理解していないと、クラス指定通りに表示されないと感じてしまうことがあります。

そのため、最初に全要素へborder-boxを適用する書き方は、初心者にとっても実務経験者にとっても定番のテクニックです。CSSの基本として覚えておくことで、HTMLとCSSの設計がスムーズになり、デザイン調整にかかる時間を大幅に減らせます。

まとめとしてのサンプルプログラム

ここで、これまで学んだ内容を整理するために、box-sizingを活用したシンプルなサンプルをもう一度確認してみましょう。content-boxとborder-boxの違いを意識しながら読むことで、CSSレイアウトの理解がより深まります。


<style>
.summary-box {
    width: 300px;
    padding: 20px;
    border: 5px solid #333;
    background-color: #f5f5f5;
    margin-bottom: 10px;
}
.summary-content {
    box-sizing: content-box;
}
.summary-border {
    box-sizing: border-box;
}
</style>

<div class="summary-box summary-content">content-boxの例</div>
<div class="summary-box summary-border">border-boxの例</div>
ブラウザ表示

同じ幅を指定していても、content-boxでは要素全体が大きくなり、border-boxでは指定した幅に収まっていることが分かります。この違いを理解しているかどうかで、CSS設計のしやすさは大きく変わります。

先生と生徒の振り返り会話

生徒

「最初はbox-sizingって難しそうだと思っていましたけど、content-boxとborder-boxの違いを知ったら、レイアウトが崩れる理由が分かるようになりました。」

先生

「それは大きな成長ですね。CSSは見た目だけでなく、計算の仕組みを理解することが大切なんです。box-sizingはその代表例ですよ。」

生徒

「これからは、widthやpaddingを設定するときに、border-boxかcontent-boxかを意識して書けそうです。特にborder-boxは便利ですね。」

先生

「その意識があれば、CSSレイアウトで大きくつまずくことは減ります。HTMLとCSSの基本として、ボックスモデルとbox-sizingはしっかり身につけておきましょう。」

生徒

「はい。今回のまとめで、CSSの基礎が一段階レベルアップした気がします。」

以上が、CSSのbox-sizingとcontent-box、border-boxについてのまとめです。CSS初心者の方はもちろん、復習したい方にとっても、ボックスモデルの理解は今後の学習や実務で必ず役立ちます。基礎を丁寧に押さえながら、HTMLとCSSのレイアウト設計に慣れていきましょう。

カテゴリの一覧へ
新着記事
New1
CSS
CSS Gridテンプレート集!よく使うWebレイアウトの作り方
New2
HTML
HTML head要素とは?meta・titleの役割と基本を解説
New3
Bootstrap
Bootstrap固定比率カラム完全ガイド!.col-6・.col-md-4の使い方とベストプラクティスを初心者向けに解説
New4
CSS
CSS Gridとメディアクエリで作る!レスポンシブデザイン完全入門
人気記事
No.1
Java&Spring記事人気No1
HTML
HTMLでできること・できないこと|初心者が迷う点を整理
No.2
Java&Spring記事人気No2
CSS
CSSの入れ子構造セレクタ完全ガイド!初心者でもわかる書き方と使い方
No.3
Java&Spring記事人気No3
CSS
CSS Gridの配置を視覚的にデザイン!grid-template-areasの設計方法
No.4
Java&Spring記事人気No4
CSS
CSSの文字色と背景色の組み合わせで読みやすさアップ!初心者でもわかる可読性の改善方法
No.5
Java&Spring記事人気No5
CSS
CSSで要素のサイズを自動調整!autoとfit-contentの使い方
No.6
Java&Spring記事人気No6
Bootstrap
Bootstrap5グリッドとは?12分割の基本とrow・col・gutterを初心者向けにやさしく解説
No.7
Java&Spring記事人気No7
HTML
HTML html/head/bodyタグの役割|文書構造の基本を整理
No.8
Java&Spring記事人気No8
CSS
CSS Gridレイアウト設計術!固定幅・自動幅・割合幅を組み合わせる方法