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

CSSのmax-widthとmin-widthを完全ガイド!最大幅・最小幅で崩れないサイト作り

コンテンツの最大幅・最小幅を制御する(max-width・min-width)
コンテンツの最大幅・最小幅を制御する(max-width・min-width)

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

生徒

「横幅をパーセントで指定したんですけど、大きな画面で見ると間伸びして格好悪いし、小さな画面だと縮みすぎて中身がはみ出ちゃうんです。」

先生

「それは『可変』の限界を設定していないからですね。CSSには最大幅と最小幅を決める便利な命令があるんですよ。」

生徒

「最大と最小……?それを使えば、どんな画面サイズでもちょうど良い大きさに保てるんですか?」

先生

「その通りです!max-widthとmin-widthの使い方をマスターすれば、プロのようなレスポンシブデザインが作れますよ。詳しく見ていきましょう!」

1. 最大幅を決めるmax-widthとは?

1. 最大幅を決めるmax-widthとは?
1. 最大幅を決めるmax-widthとは?

Webサイトを作るときに、箱(要素)の横幅を「width: 100%」に設定すると、画面いっぱいに広がります。しかし、最近のパソコンのモニターは非常に大きいため、横に広がりすぎると文章が一行に長く伸びてしまい、目が疲れて読みづらくなってしまいます。ここで登場するのが「max-width(マックス・ウィズ)」です。

これは日本語で「最大幅」という意味です。「普段は画面に合わせて伸び縮みしてもいいけれど、これ以上の大きさにはならないでね」という上限を決めるルールです。例えば、最大幅を1000pxに設定しておけば、どんなに巨大なモニターで見ても、コンテンツは1000pxの幅で止まってくれます。これにより、デザインの美しさと読みやすさを両立させることができるのです。

2. max-widthを使った基本のレイアウト設定

2. max-widthを使った基本のレイアウト設定
2. max-widthを使った基本のレイアウト設定

具体的な使い方の例を見てみましょう。コンテンツ全体を包む「コンテナ」という箱によく使われます。画面が狭いスマホで見るときは画面幅いっぱいに広がり、画面が広いパソコンで見るときは指定した幅で止まるという、とてもスマートな動きを実現できます。パソコン初心者の人でも、まずはこの「上限を決める」という感覚を大切にしてください。


<style>
    .container {
        width: 100%; /* 基本は画面いっぱい */
        max-width: 600px; /* でも、600pxよりは大きくならない */
        margin: 0 auto; /* 左右の余白を自動にして真ん中に寄せる */
        background-color: #f0f8ff;
        padding: 20px;
        border: 2px solid #007bff;
    }
</style>

<div class="container">
    この箱は、画面を広げても600pxで止まります。
    逆に画面を狭くすると、画面に合わせて縮んでくれます。
</div>
ブラウザ表示

3. 最小幅を決めるmin-widthの役割

3. 最小幅を決めるmin-widthの役割
3. 最小幅を決めるmin-widthの役割

最大幅とは反対に、これ以上は小さくなってほしくないという下限を決めるのが「min-width(ミン・ウィズ)」です。最小幅という意味ですね。例えば、ボタンの中に大事な文字が入っている場合、画面が極端に狭くなった時にボタンが潰れて文字が読めなくなっては困ります。そんな時に「最低でもこの幅は確保してね」と命令します。

もし画面の幅が設定した最小幅よりも小さくなった場合、ブラウザはその要素を無理やり縮めるのをやめて、代わりに「横スクロールバー」を表示させます。これにより、中身のレイアウトがグチャグチャに崩れるのを防ぐことができるのです。スマホでの表示崩れを防ぐための、最後の防衛ラインとも言える重要な設定です。

4. min-widthでボタンの崩れを防ぐ実践例

4. min-widthでボタンの崩れを防ぐ実践例
4. min-widthでボタンの崩れを防ぐ実践例

文字が入ったボタンやラベルなどでよく使われるパターンを紹介します。中の文字数に関わらず、最低限の「押しやすさ」を確保するために幅を保証してあげましょう。プログラミング未経験の方は、まず「中身を守るための設定」だと考えると理解しやすいですよ。


<style>
    .min-button {
        display: inline-block;
        background-color: #ffc107;
        padding: 10px 20px;
        text-align: center;
        text-decoration: none;
        color: #333;
        font-weight: bold;
        border-radius: 5px;
        /* 最小幅を設定して、短すぎる文字でもボタンの形を保つ */
        min-width: 200px;
    }
</style>

<a href="#" class="min-button">OK</a>
<p>「OK」という短い文字でも、ボタンは200pxの幅をキープします。</p>
ブラウザ表示

5. 画像のサイズをコントロールしてはみ出し防止

5. 画像のサイズをコントロールしてはみ出し防止
5. 画像のサイズをコントロールしてはみ出し防止

画像を表示させるときにも、最大幅の設定は非常に役立ちます。大きな写真をWebページに貼り付けると、スマホでは画面からはみ出してしまいます。そこで「max-width: 100%;」という魔法の指定をします。これは「親の箱の幅を100%として、それを絶対に超えないでね」という意味です。

これを使えば、画像本来のサイズがどれだけ大きくても、スマホで見ているときはスマホの画面幅に合わせて自動で縮んでくれます。一方で、パソコンで見ているときは、画像本来のサイズ(または親の箱のサイズ)までしか広がらないので、無理やり引き伸ばされて画質が悪くなることも防げます。非常に理にかなった設定方法です。


<style>
    .photo-box {
        width: 80%;
        border: 3px solid #ccc;
        padding: 10px;
    }
    .photo-box img {
        /* これがレスポンシブ対応の定番設定! */
        max-width: 100%;
        height: auto;
    }
</style>

<div class="photo-box">
    <img src="/img/sample150-100.jpg" alt="見本画像">
    <p>この画像は親の箱からはみ出しません。</p>
</div>
ブラウザ表示

6. width・max-width・min-widthを組み合わせる技

6. width・max-width・min-widthを組み合わせる技
6. width・max-width・min-widthを組み合わせる技

最後に、これらをすべて組み合わせて使う高度なテクニックを紹介します。例えば「基本は画面の80%の幅で伸び縮みしてほしいけれど、大きな画面でも800px以上にはしたくないし、小さな画面でも300px以下にはしたくない」というわがままな注文も、CSSなら簡単に叶えられます。

このように設定を組み合わせることで、どんなデバイスで見ても「デザイナーが意図した最適なサイズ感」を維持することができます。最初は混乱するかもしれませんが、「width(基本)」に「max(天井)」と「min(底)」を付けるというイメージで覚えてください。これができるようになると、一気に初心者から脱却して、実戦的なWebサイトが作れるようになります!


<style>
    .flexible-card {
        background-color: #e9ecef;
        padding: 15px;
        margin: 20px auto;
        border-radius: 10px;
        
        /* 3つの指定を組み合わせる */
        width: 80%;        /* 基本は80% */
        max-width: 500px;  /* でも最大500pxまで */
        min-width: 250px;  /* でも最小250pxは確保 */
    }
</style>

<div class="flexible-card">
    画面を動かしてみてください。<br>
    適度な大きさを保ち続ける「賢い箱」になります。
</div>
ブラウザ表示

7. ブラウザの検証ツールで限界を確かめよう

7. ブラウザの検証ツールで限界を確かめよう
7. ブラウザの検証ツールで限界を確かめよう

設定がうまくいっているか確認するには、ブラウザの「検証ツール」を使うのが一番です。画面の端をマウスでドラッグして横幅を狭めたり広げたりしてみましょう。ある瞬間に、箱がピタッと止まったり、それ以上縮まなくなったりするはずです。それがあなたが設定したmax-widthやmin-widthの効果が現れている証拠です。

パソコンを触ったことがない方にとって、この「数字で限界を決める」という作業は少し数学的に感じるかもしれませんが、実際に動きを目にすると「なるほど!」と納得できるはずです。最大幅と最小幅を使いこなして、誰にでも優しい、読みやすいWebサイトを目指して一歩ずつ進んでいきましょう。

カテゴリの一覧へ
新着記事
New1
Bootstrap
Bootstrapグリッドシステム完全解説!オフセット(offset)で左右に余白を作る方法【初心者向け】
New2
CSS
CSSのmax-widthとmin-widthを完全ガイド!最大幅・最小幅で崩れないサイト作り
New3
HTML
HTML セマンティックHTMLが重要な理由|SEOと構造の関係を初心者向けにやさしく解説
New4
Bootstrap
Bootstrapグリッドのガター完全ガイド!g-0〜g-5・gx・gyで間隔を自由に調整しよう
人気記事
No.1
Java&Spring記事人気No1
Bootstrap
Bootstrap固定比率カラム完全ガイド!.col-6・.col-md-4の使い方とベストプラクティスを初心者向けに解説
No.2
Java&Spring記事人気No2
HTML
HTML head要素とは?meta・titleの役割と基本を解説
No.3
Java&Spring記事人気No3
HTML
HTMLでできること・できないこと|初心者が迷う点を整理
No.4
Java&Spring記事人気No4
Bootstrap
Bootstrapグリッドシステム完全入門!画面サイズでカラム数を切り替える方法(.col-12 → .col-md-6 → .col-lg-4)
No.5
Java&Spring記事人気No5
CSS
CSSの子要素セレクタを完全ガイド!初心者でもわかる:first-child・:last-child・:nth-child()
No.6
Java&Spring記事人気No6
CSS
CSS Gridの配置を視覚的にデザイン!grid-template-areasの設計方法
No.7
Java&Spring記事人気No7
CSS
CSSで要素のサイズを自動調整!autoとfit-contentの使い方
No.8
Java&Spring記事人気No8
HTML
HTML文書構造とSEOの関係|検索に強い構造の作り方