カテゴリ: CSS 更新日: 2026/07/27

CSSのoverflowプロパティ完全ガイド!初心者でもわかるvisible・hidden・scroll・autoの違い

overflowの使い方まとめ(visible・hidden・scroll・auto)
overflowの使い方まとめ(visible・hidden・scroll・auto)

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

生徒

「先生、CSSのoverflowってよく見かけるんですけど、どういう意味なんですか?」

先生

「overflowは、ボックスの中に入りきらない文字や画像をどう表示するかを決めるプロパティです。」

生徒

「入りきらないって、例えばどんなときに起きるんですか?」

先生

「例えば、幅100ピクセルの箱の中に200ピクセルの文章を入れたら、はみ出してしまいますよね。そのときにどうするかを指定するのがoverflowなんです。」

生徒

「なるほど!具体的にはどんな種類があるんですか?」

先生

「主に4種類あって、visible・hidden・scroll・autoです。それぞれの特徴を順番に見ていきましょう。」

1. overflowとは?溢れたコンテンツの処理ルール

1. overflowとは?溢れたコンテンツの処理ルール
1. overflowとは?溢れたコンテンツの処理ルール

CSSのoverflow(オーバーフロー)プロパティは、日本語で「溢れる」という意味の通り、親要素(ボックス)のサイズを中身のコンテンツが超えてしまった際に、どのように表示・処理するかを制御するための重要なプロパティです。

Web制作の現場では、スマホで見るときに文字がはみ出したり、画像がデザインを突き破ってしまったりすることがよくあります。そんな時、「はみ出た分を隠すのか」「スクロールさせて見せるのか」を指示することで、ユーザーにとって使いやすく、見た目が整ったレイアウトを保つことができます。

初心者向けのイメージ:
「150mlしか入らないコップに、200mlの水を注いだとき」を想像してみてください。溢れた水をそのまま床にこぼすのか(visible)、溢れた分を無かったことにするのか(hidden)、あるいは大きな容器に替えて自由に飲めるようにするのか(scroll/auto)。このルール決めがoverflowの役割です。


<style>
    /* 親要素(箱)の設定 */
    .parent-box {
        width: 150px;
        height: 100px;
        background-color: #f8f9fa;
        border: 2px dashed #6c757d;
        /* ここにoverflowを指定します(未指定はvisible) */
    }

    /* 中身の画像(箱より大きいサイズ) */
    .child-content {
        width: 200px;
        height: 150px;
        opacity: 0.7;
    }
</style>

<div class="parent-box">
    <img src="/img/sample150-100.jpg" alt="サンプル画像" class="child-content">
</div>
ブラウザ表示

上のサンプルでは、点線の枠(150x100)に対して、中の画像(200x150)が大きいため、右側と下側にはみ出しています。これが「オーバーフロー」している状態です。ここから具体的に、visiblehiddenscrollautoの4つの値を使って、このはみ出しをどう料理していくかを詳しく解説していきます。

2. visible(デフォルト設定)

2. visible(デフォルト設定)
2. visible(デフォルト設定)

CSSのvisible(ヴィジブル)は、要素のサイズを突き抜けて中身が表示される設定です。実は、overflowプロパティを何も書いていないときは、自動的にこの「visible」が適用されています。いわば、中身を隠さずすべてさらけ出す「初期状態」のことです。

プログラミングを始めたばかりの方にとってイメージしやすい例えは、「小さなコップに、なみなみと注がれた水」です。コップ(外枠の箱)の容量を超えても、水(文字や画像)が消えることなく、外側へ溢れ出している状態をイメージしてください。


<style>
    .overflow-box {
        width: 150px;
        height: 100px;
        border: 3px solid #007bff;
        background-color: #f8f9fa;
        /* overflow: visible; (省略してもこれと同じ動きになります) */
    }
</style>

<div class="overflow-box">
    ここに非常に長いテキストが入ります。設定した箱の高さは100pxしかありませんが、visible設定(デフォルト)なので、文字は枠線を突き抜けて下にそのまま表示され続けます。
</div>
ブラウザ表示

このように、visibleを使うとはみ出したコンテンツが完全に露出します。メリットとしては「情報が勝手に隠されないこと」が挙げられますが、実務上の注意点もあります。例えば、この箱の下に別のボタンや文章を配置していた場合、はみ出した文字が重なってしまい、文字が読めなくなる「デザイン崩れ」の原因になります。

「はみ出してもいいからすべて見せたい」のか、それとも「レイアウトを優先して隠すべきか」。この判断がCSS設計の第一歩になります。

3. overflow: hidden(はみ出した部分を隠す)

3. overflow: hidden(はみ出した部分を隠す)
3. overflow: hidden(はみ出した部分を隠す)

hidden(ヒドゥン)は、指定したボックスからはみ出した要素を、強制的に「見えない状態」にする設定です。Webデザインでは、余計なスクロールバーを出したくない時や、特定の形に合わせて画像を切り抜いたように見せたい時に非常によく使われます。

プログラミング初心者の方が最初につまずきやすいのが、「消えただけで、存在はしている」という点です。データが削除されるわけではなく、あくまで「箱の枠外に出た分をマスクして隠している」というイメージを持つと分かりやすいでしょう。例えば、150pxの箱の中に200pxの画像を入れると、右側の50px分だけがバッサリと切り取られたように表示されます。


<style>
.container {
    width: 200px;
    height: 120px;
    border: 3px solid #007bff;
    background-color: #f8f9fa;
    /* はみ出した部分を隠す魔法の1行 */
    overflow: hidden;
}
.content {
    padding: 10px;
    font-size: 16px;
    line-height: 1.6;
}
</style>

<div class="container">
    <div class="content">
        【ここに注目!】この文章は200pxの横幅を超えて、縦にも長く続いています。
        しかし、親要素にoverflow: hiddenが設定されているため、
        青い枠線からはみ出している部分はまるで存在しないかのように表示されません。
    </div>
</div>
ブラウザ表示

hiddenを使用するメリットは、画面レイアウトが崩れるのを防ぎ、スッキリとした見た目を保てることです。ただし、重要な注意点があります。隠された部分はマウスでスクロールしても見る方法がありません。ユーザーに読ませる必要がある文章や、操作が必要なボタンをhiddenで隠してしまわないよう、用途をしっかり見極めるのがSEOやユーザー体験(UX)を高めるコツです。

4. scroll(スクロールバーを常に表示)

4. scroll(スクロールバーを常に表示)
4. scroll(スクロールバーを常に表示)

scrollは、指定した枠の中に収まるかどうかにかかわらず、常にスクロールバーを表示させる設定です。「ここはスクロールして読む場所ですよ」ということを、ユーザーに視覚的にハッキリと伝えることができます。

初心者の方が陥りやすいミスとして、中身が少ないときにスクロールバーが消えてしまい、デザインがガタつくことがあります。scrollを使えば、常にバーの領域が確保されるため、レイアウトが崩れにくいというメリットもあります。特に画像や表などの「はみ出しやすい要素」を扱う際に重宝します。


<style>
.scroll-box {
    width: 200px;
    height: 150px;
    border: 3px dashed #007bff;
    padding: 10px;
    /* 常にスクロールバーを表示 */
    overflow: scroll;
}
</style>

<div class="scroll-box">
    <p>このボックスは、たとえ文字が少なくても右側と下にスクロールバーが表示されます。</p>
    <p>スクロールバーが常にあることで、ユーザーは「ここには続きがあるかもしれない」と直感的に理解できます。</p>
    <img src="/img/sample150-100.jpg" alt="サンプル画像">
</div>
ブラウザ表示

ただし、最近のブラウザやスマートフォンでは、スクロールしない限りバーを非表示にする設定も多いため、意図した見た目になっているか実機で確認するのがおすすめです。内容が収まっているのに常にグレーのバーが見えてしまうのが気になる場合は、自動で切り替わる「auto」との使い分けを検討しましょう。

5. auto(必要なときだけスクロールバーを表示)

5. auto(必要なときだけスクロールバーを表示)
5. auto(必要なときだけスクロールバーを表示)

CSSのoverflow: auto;は、コンテンツが指定したサイズを「はみ出したときだけ」自動でスクロールバーを表示してくれる、非常に賢くて便利な設定です。Webデザインの現場では、このautoが最も頻繁に利用されます。

例えば、スマホで見ると文字が溢れてしまうけれど、パソコンで見ると余裕がある、といった状況でもautoなら安心です。枠内に収まっているときは何も表示されず、入りきらなくなった瞬間にスクロールできるようになるため、デザインの美しさを損なうことがありません。初心者の方は、迷ったらまずはこのautoを試してみるのがおすすめです。


<style>
    .scroll-box {
        width: 200px;
        height: 120px;
        padding: 10px;
        border: 3px solid #ff9800;
        background-color: #fffaf0;
        /* はみ出した時だけスクロールバーを出す */
        overflow: auto;
    }
</style>

<div class="scroll-box">
    <p>ここには長い文章が入ります。プログラミング未経験の方でも、この「auto」を使えば、レイアウトが崩れる心配がありません。文字量が増えて枠を突き抜けてしまいそうな時だけ、右側や下にスクロールバーが出現して、中身をすべて読むことができるようになります。ニュース一覧や、ユーザーからのコメント欄などによく使われるテクニックです。</p>
</div>
ブラウザ表示

この設定の最大のメリットは、「ユーザーにとっての使いやすさ(ユーザビリティ)」です。常にスクロールバーが見えていると画面が窮屈に感じますが、autoなら必要な時だけ現れるので、スッキリとした見た目を維持できます。SNSの投稿を表示するパーツや、サイドバーのメニューなど、中身の量が状況によって変わる場所で積極的に活用しましょう。

6. overflowの使い分けまとめ

6. overflowの使い分けまとめ
6. overflowの使い分けまとめ

ここまで紹介した4つの設定を比べると、それぞれ次のような特徴があります。

  • visible:はみ出してもそのまま表示(デフォルト)
  • hidden:はみ出した部分を非表示にする
  • scroll:常にスクロールバーを表示する
  • auto:必要なときだけスクロールバーを表示する

overflowを正しく使い分けると、Webページのデザインが崩れにくくなり、ユーザーにとって見やすいレイアウトを作ることができます。

まとめ

まとめ
まとめ

CSSのoverflowプロパティについて、その役割から具体的な指定方法、そして現場で役立つ使い分けのポイントまで詳しく解説してきました。Web制作の現場では、テキスト量や画像サイズが常に一定であるとは限りません。そんなときに「はみ出した要素をどう扱うか」をコントロールできるこのプロパティは、レスポンシブデザインやUI設計において極めて重要な役割を果たします。

初心者の方が最初につまずきやすいのは、overflow: hidden;を多用しすぎて、本来読まれるべき文章が隠れてユーザーに届かなくなってしまうケースです。また、scrollを指定してデザインがガタついてしまうこともあります。そのため、現代のWebデザインにおいては、自動で最適化してくれるautoをベースに考え、装飾的な意図や特定のレイアウト崩れを防ぐ目的でhiddenvisibleを使い分けるのが主流となっています。

さらに応用!overflow-xとoverflow-yの個別指定

実は、overflowは縦方向と横方向で別々に制御することも可能です。これをマスターすると、横スクロールする画像ギャラリーや、縦にだけ伸びるニュース一覧などが簡単に作れるようになります。例えば、横方向にはみ出した分だけスクロールさせたい場合はoverflow-x: auto;を使用します。


<style>
.scroll-x-container {
width: 100%;
overflow-x: auto;
white-space: nowrap;
border: 1px solid #ccc;
padding: 10px;
}
.scroll-x-container img {
width: 150px;
height: 100px;
margin-right: 10px;
}
</style>

<div class="scroll-x-container">
<img src="/img/sample150-100.jpg" alt="サンプル画像1">
<img src="/img/sample150-100.jpg" alt="サンプル画像2">
<img src="/img/sample150-100.jpg" alt="サンプル画像3">
<img src="/img/sample150-100.jpg" alt="サンプル画像4">
</div>
ブラウザ表示

上記のようにwhite-space: nowrap;と組み合わせることで、画像が横一列に並び、スマホ表示などの幅が狭い環境でもユーザーが指でスワイプして閲覧できる「横スクロールレイアウト」が実現できます。これはスマートフォンのUI設計(UI/UXデザイン)において非常に多用されるテクニックですので、覚えておくと役立ちます。

注意点:BFC(ブロック整形コンテキスト)とフロートの解除

中級者向けの知識として、overflow: hidden;(または auto)には、「フロートを解除する」という副次的な効果もあります。親要素の中にfloatを指定した子要素がある場合、親要素の高さがなくなってしまうことがありますが、親にoverflow: hidden;を記述することで高さを正しく認識させることができます。


<style>
.parent {
border: 3px solid #333;
background-color: #f9f9f9;
overflow: hidden; /* これがないと背景や枠線が消える */
padding: 10px;
}
.float-child {
float: left;
width: 120px;
height: 120px;
background-color: #007bff;
color: white;
text-align: center;
line-height: 120px;
}
</style>

<div class="parent">
<div class="float-child">FLOAT子要素</div>
<p style="margin-left: 140px;">
親要素にoverflow: hiddenを指定することで、フロートした子要素の高さを包み込むことができます。
</p>
</div>
ブラウザ表示

このように、overflowプロパティは単なる「はみ出し処理」以上の役割を担うことがあります。SEOの観点からも、コンテンツが意図せず隠れてしまったり、モバイルフレンドリーテストでエラーが出たりしないよう、適切なスクロール設定を行うことは非常に重要です。検索エンジンはユーザー体験(UX)を評価するため、見やすいレイアウト作りは間接的に検索順位にも良い影響を与えます。

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

生徒

「先生、ありがとうございました!overflowの使い方、すごくよく分かりました。特に、autoとscrollの違いは実際に触ってみると納得感がありますね。」

先生

「そうですね。基本的にはブラウザにお任せするautoが一番安全ですが、あえてスクロールバーを最初から見せておきたいデザインのときにはscrollを検討しましょう。」

生徒

「記事の後半で教えてもらったoverflow-xを使った横スクロール、あれってInstagramのストーリーズ一覧みたいでカッコいいです!スマホサイトで早速使ってみたいです。」

先生

「素晴らしいですね!モバイル対応では画面幅に限りがあるので、overflowを活用して情報を整理するのはとてもスマートなアプローチです。あと、hiddenを使うときは大切な情報が消えてしまわないか、必ず画面幅を変えてチェックする癖をつけてくださいね。」

生徒

「はい!PCだと見えていても、スマホだと幅が狭くなって文字が消えちゃうこともありますもんね。デベロッパーツールでしっかり確認しながらコーディングしてみます。あ、あとフロートの解除にも使えるなんて、overflowって意外と万能選手なんですね。」

先生

「その通りです。CSSにはそうした『本来の目的とは別の便利な使い方』がいくつかあります。まずはoverflowの4つの基本値を完璧にマスターして、そこから応用的なレイアウト手法に挑戦していきましょう。応援していますよ!」

生徒

「ありがとうございます!次はoverflow-yを使って、チャットアプリのような下方向に伸びる画面を作ってみたいと思います!」

2026年最新 スキルアップ・実践セミナー

【60分集中】Flexboxを完全攻略!最新CSS3で「崩れない・迷わない」モダンUI構築セミナー

「魅せる力」をコードで実現。CSS3でモダンWebデザインのプロトタイピングを。

本講座では、単に色を変えるだけではなく、「ユーザーを迷わせないUIデザイン」「崩れないレイアウト設計」の本質を学びます。最新のCSS3とモダンなレイアウト手法を通じて、プロの現場で通用する「美しさと機能性を両立した実装力」を最短距離で習得します。

具体的なワークショップ内容と環境

【つくるもの】
HTMLで作成した骨組みに対し、商用サイトでも採用される「スタイリッシュなカード型UI」や「レスポンシブなナビゲーション」を構築します。色の選定基準や余白(ホワイトスペース)の黄金比など、デザインの理論をコードに落とし込む工程を体験してください。

【開発環境】
フロントエンド開発の標準であるVisual Studio Code (VS Code)を継続使用。CSSの記述を効率化するプラグインや、ブラウザのデベロッパーツール(検証機能)を駆使して、リアルタイムでデザインを微調整するプロのワークフローを再現します。

この60分で得られる3つの技術資産

1. 現代のデファクトスタンダード「Flexbox」

要素の横並びや中央揃えを自由自在に操り、どんなデバイスでも崩れないレスポンシブな配置術を完全理解します。

2. メンテナンス性を高めるCSS設計の基礎

後から修正しやすい「壊れにくいコード」の書き方を伝授。プロの現場で必須となる命名規則の考え方を学びます。

3. パフォーマンスと美しさの両立

画像の最適化や軽量な装飾技法など、ページの表示速度を落とさずに高級感のある演出を行うテクニックを習得します。

※本講座は、HTMLの基礎を終えた後のステップアップ講座です。Webデザイナー、UIデザイナー、フロントエンドエンジニアへの道を切り開く「魅せる技術」を、モクモク独自のパーソナル指導で着実に定着させます。

【60分集中】Flexboxを完全攻略!最新CSS3で「崩れない・迷わない」モダンUI構築セミナー

リラックスしながら、学ぶことが大切です。しっかりと基礎を理解しましょう!

各回少人数・マンツーマン形式で徹底サポート

このセミナーの詳細・お申し込みはこちら
カテゴリの一覧へ
新着記事
New1
CSS
CSSでdisplayの違いを図解で理解!block・inline・inline-blockの使い方
New2
CSS
CSSのwidthとheightの基本!初心者でもわかる単位の使い分け
New3
CSS
z-indexによるバグを防ぐためのデバッグ方法完全ガイド!初心者向け解決テクニック
New4
HTML
HTML data-*属性とJavaScript連携を完全解説!datasetでカスタムデータを取得する方法
人気記事
No.1
Java&Spring記事人気No1
HTML
HTML inputタグとは?フォーム入力を担う基本要素を初心者向けに完全解説
No.2
Java&Spring記事人気No2
HTML
HTML formのaction URL設計を完全解説|送信先の考え方を初心者でも理解
No.3
Java&Spring記事人気No3
CSS
CSSで要素のサイズを自動調整!autoとfit-contentの使い方
No.4
Java&Spring記事人気No4
CSS
レイヤー管理に便利なCSS変数とSCSS変数の活用法完全ガイド!初心者向け解説
No.5
Java&Spring記事人気No5
HTML
HTMLのformタグの書き方を完全ガイド!actionとmethod属性の意味を初心者向けにやさしく解説
No.6
Java&Spring記事人気No6
CSS
CSSのnth-child()を完全攻略!特定の順番にスタイルを当てる方法
No.7
Java&Spring記事人気No7
Bootstrap
Bootstrapで学ぶレスポンシブな並び方向の使い方完全ガイド!flex-rowとflex-columnを初心者向けにやさしく解説
No.8
Java&Spring記事人気No8
Bootstrap
Bootstrapモーダルの基本実装を完全解説!data-bs-toggleとdata-bs-targetで簡単に開閉しよう