カテゴリ: CSS 更新日: 2026/04/25

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は、はみ出したかどうかに関係なくスクロールバーを表示する設定です。ユーザーが自由にスクロールして中身を確認できます。


<style>
.box {
    width: 150px;
    height: 100px;
    border: 2px solid red;
    overflow: scroll;
}
</style>

<div class="box">
とても長い文章が入っています。この文章は箱からはみ出します。
</div>
ブラウザ表示

scrollは、中身が収まっていても常にスクロールバーが表示されるので、ユーザーに「スクロールできる」ということがわかりやすい反面、少し不自然に見えることもあります。

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

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

autoは、はみ出したときだけスクロールバーを表示する設定です。overflowの中では一番よく使われることが多いです。


<style>
.box {
    width: 150px;
    height: 100px;
    border: 2px solid orange;
    overflow: auto;
}
</style>

<div class="box">
とても長い文章が入っています。この文章は箱からはみ出します。
</div>
ブラウザ表示

autoは、必要なときだけスクロールバーが出るので、見た目も自然で使いやすいです。ニュース記事やチャットボックスなど、文章が長くなる可能性があるときによく使われます。

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
Bootstrap
Bootstrap移行ガイド!IEサポート終了の影響と代替実装・ポリフィルの考え方
New2
CSS
CSSでグリッド・フレックスと組み合わせたマージン最適化テクニック!初心者でもわかる余白調整
New3
Bootstrap
Bootstrapオフキャンバス完全入門|バックドロップ・スクロール・キーボード設定をやさしく解説
New4
CSS
CSSで見出し・段落・リストのマージン調整を完全解説!初心者でも理解できる基本
人気記事
No.1
Java&Spring記事人気No1
CSS
CSSで要素のサイズを自動調整!autoとfit-contentの使い方
No.2
Java&Spring記事人気No2
CSS
CSSの透明度を完全解説!初心者にもわかるopacityとrgbaの使い方
No.3
Java&Spring記事人気No3
HTML
HTMLのimgタグの書き方|src・altの必須属性を初心者向けにやさしく整理
No.4
Java&Spring記事人気No4
CSS
CSSでGoogle Fontsを使う方法を完全ガイド!初心者でもできるフォントの変更
No.5
Java&Spring記事人気No5
Bootstrap
ReactでBootstrapを使う方法を解説!初心者でもわかるreact-bootstrapと本体の違い
No.6
Java&Spring記事人気No6
CSS
CSSで色の明るさや鮮やかさを自由に調整!初心者向けHSLカラー指定の完全ガイド
No.7
Java&Spring記事人気No7
CSS
CSSのレイアウト基本パターンを完全ガイド!初心者でもわかる2カラム・3カラムの作り方
No.8
Java&Spring記事人気No8
CSS
CSSのダブルボーダーや点線・破線を完全ガイド!初心者でもわかるdotted・dashed・doubleの使い方