icon
icon

CSSのoverflowを使ってはみ出た表示の指定をする方法【初心者向け】現役Webデザイナーが解説

初心者向けにCSSでoverflowを使って要素からはみ出た際の表示の指定方法について解説しています。レイアウトが崩れないように実際の業務でも使える知識です。実際にコードを書きながら例をもとに説明しているので、ぜひご覧ください。

テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日  調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名  調査手法:インターネット調査

今回は、CSSのoverflowではみ出た表示の指定をする方法を説明します。

文章が長くなり、外枠からはみ出てしまう時、手動で改行などしなくてもCSSで調整することができるので覚えておくと良いでしょう。

 

目次

1時間でできる無料体験!

そもそもCSSについてよく分からないという方は、CSSの書き方について解説した記事を読むとさらに理解が深まります。

 

大石ゆかり

田島メンター!CSSで枠からはみ出た文章の折り返しをしたいんですけど・・・

田島悠介

そういう時はoverflowっていうプロパティを使うと便利だよ!

大石ゆかり

例えば、枠内でスクロールして見ることもできますか?

田島悠介

全然できるよ!種類もいくつかあるから1個ずつ見ていこうか!

大石ゆかり

わかりました〜!

overflowを使う時の値の種類

テキストを囲むボックスに、「overflowプロパティ」を設定すると、テキストがボックスからはみ出す場合、どういう風に表示するか、あらかじめ設定する事ができます。

「overflowプロパティ」は4種類の値を持ちます。

  • visible:初期値。はみ出して表示されます。
  • scroll:スクロール表示されます。
  • hidden:表示されません。
  • auto:ブラウザに依存します。(一般的にはスクロールと同じ状態になる)

それぞれ詳しく見ていきましょう。

 

「visible」

テキストがボックス内に収まらない場合、テキストはボックスからはみ出して表示されます。

これが初期値になっています。

初期値というのはoverflowを設定しない場合、「overflow: visible;」が設定されていると見なされます。

「Internet Explorer」では内容がはみ出すのではなく、ボックスが内容に合わせて拡張されます。

「chrome」や「Firefox」や「Edge]では領域をはみ出して表示します。

 

「scroll」

テキストがボックス内に収まらない場合、ボックスにスクロールが表示され、ボックスからはみ出したテキストはスクロールすることで見られます。

スクロールバーは自動的に表示されるので、スクロールバーを実装してテキストを見せたい時にも使えます。

ただし、「Internet Explorer」では常時スクロールバーが表示されるため、デザインの際注意が必要です。

 

「hidden」

テキストがボックス内に収まらない場合、はみ出たテキストは表示されず、HTMLにないものとして処理されます。

 

「auto」

ブラウザに依存して自動で決まります。

一般的にはスクロールして見られるようになり、どのブラウザでもだいたい同じものになると思います。

 

[PR] Webデザインで副業する学習方法を動画で公開中

実際に書いてみよう

実際にコードを書いてみましょう。

HTML

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>CSS overflow</title>
    <link rel="stylesheet" type="text/css" href="sample.css">
  </head>
  <body>
    <div class="hid">
      <p>
        The European languages are members of the same family. Their separate existence is a myth. For science, music, sport, etc, Europe uses the same vocabulary. The languages only differ in their grammar, their pronunciation and their most common words. Everyone realizes why a new common language would be desirable: one could refuse to pay expensive translators.
      </p>
    </div>
    <br>
    <div class="scr">
      <p>
        The European languages are members of the same family. Their separate existence is a myth. For science, music, sport, etc, Europe uses the same vocabulary. The languages only differ in their grammar, their pronunciation and their most common words. Everyone realizes why a new common language would be desirable: one could refuse to pay expensive translators.
      </p>
    </div>
    <br>
    <div class="vis">
      <p>
        The European languages are members of the same family. Their separate existence is a myth. For science, music, sport, etc, Europe uses the same vocabulary. The languages only differ in their grammar, their pronunciation and their most common words. Everyone realizes why a new common language would be desirable: one could refuse to pay expensive translators.
      </p>
    </div>
  </body>
</html>

CSS

div.hid{
  width: 200px;
  height: 100px;
  overflow: hidden;
  background-color: #FF9999;
}

div.scr{
  width: 200px;
  height: 100px;
  overflow: scroll;
  background-color: #99FF99;
}

div.vis{
  width: 200px;
  height: 100px;
  overflow: visible;
  background-color: #9999FF;
}

 

 

実行すると以下のように表示されます。

 

それぞれ表示を確認してみましょう。

 

hidden

hiddenの場合、このようにはみ出た部分は表示されません。

スクロールさせて表示することもできません。

 

 

scroll

scrollの場合、入りきらなかったテキストはスクロールして見られるようになります。

デフォルトの場合、文字が div の横幅 width で折り返され、縦方向にスクロールバーが表示されます。

 

 

cssに white-space:nowrap (自動的に改行しないという意味)を指定することで、横方向にスクロールさせることも可能です。

div.scr{
  width: 200px;
  height: 100px;
  overflow: scroll;
  white-space:nowrap;
  background-color: #99FF99;
}

 

この他、overflow-x や overflow-y プロパティを使い、縦と横のスクロールバーの表示を細かく制御することも可能です。

 

visible

visibleの場合、ボックスからはみ出して表示されます。

青の部分がdivボックスです。

デフォルトの場合、文字が div の横幅 width で折り返され、縦方向にはみ出して表示されます。

 

 

こちらもscrollと同様、cssに white-space:nowrap を指定することで、横方向にスクロールさせることも可能です。

div.vis{
  width: 200px;
  height: 100px;
  overflow: visible;
  white-space:nowrap;
  background-color: #9999FF;
}

 

 

また、ボックスの高さを設定しない場合、ボックスの高さは、中のテキストの高さに合わせ自動的に伸縮されます。

div.vis{
  width: 200px;
  /* height: 100px; 高さをコメントアウト */
  overflow: visible;
  background-color: #9999FF;
}

 

 

このように、overflowの指定によって、表示が変わることが分かりますね。

続いて、「auto」を適用してみましょう。

HTML

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>CSS overflow</title>
    <link rel="stylesheet" type="text/css" href="sample.css">
  </head>
  <body>

    <div class="aut">
      <p>
        The European languages are members of the same family. Their separate existence is a myth. For science, music, sport, etc, Europe uses the same vocabulary. The languages only differ in their grammar, their pronunciation and their most common words. Everyone realizes why a new common language would be desirable: one could refuse to pay expensive translators.
      </p>
    </div>

  </body>
</html>

CSS

div.aut{
  width: 200px;
  height: 100px;
  overflow: auto;
  background-color: #e22276;
}

 

 

ブラウザによって変わりますが、だいたい「scroll」が適用されるはずです。

スクリーンショット 2016-08-31 17.34.41

「overflowプロパティ」はデフォルトで「visible」が設定されており、はみ出したときにそのまま表示されてしまいます。

 

以上、overflowの使い方について解説しました。

CSSを用いてHTMLをどのように見せたいのか考え、コーディングを行っていきましょう。

 

監修してくれたメンター

中本賢吾(なかもとけんご)

アジマッチ有限会社 代表取締役社長

開発実績:PHPフレームワークを利用した会員制SNS・ネットショップ構築、AWSや専用サーバー下でLinuxを使用したセキュアな環境構築、人工知能を利用したシステム開発、店舗検索スマホアプリ開発など。ノーコードチャットアプリリリース、小学生がオリジナルAndroidアプリをGooglePlayでリリース、NHK Whyプログラミング入賞、全国Programing Festival入賞などボランティアで地域の職業プログラマー育成活動も行っている。

 

田島悠介

一応一通り説明したんだけど、どうかな?

大石ゆかり

スクロールするのは結構便利ですね!

田島悠介

ボックス内に入りきらない時は「overflow:auto;」で基本設定しておけば間違いないと思うよ!

大石ゆかり

自動で折り返してスクロールバーもついてるので、使ってみますね♪

 

コラム

コスパとタイパ、両方結果的に良くなる良くなる学び方とは?

「スクールは高いし時間も縛られて効率が悪い」と考える方は多いと思います。
もちろん、時間も費用もかかることは間違いありません。
ただ 結果的に無駄な学びにお金も時間もかける方がリスクが高いという考えもあります。

コスパ・タイパ最適化の参考として、 テックアカデミー卒業生がスクールを選んだ理由 をご紹介します。

  • ・困ったときに、質問や相談できる相手がいるため挫折しなかった
  • ・プロとして必要なスキルのみを深く学べたので無駄がなかった
  • ・副業案件の提供と納品までのサポートがあったので目的を達成できた

安価・短期間で広く浅く学んでも意味がありません。 本当に自分の目的が達成できるか、それが重要です。
自分にどのスキルや学び方が合っているか、どんな学習方法かなど、お気軽に 無料相談 に参加してみませんか?

カウンセラー・現役のプロへ、何でも気軽に無料相談可能。 30分か60分お好きな時間が選べて、かつ3回まで すべて無料で ご利用できます。
無理な勧誘は一切ない ので、お気軽にご参加ください。

今なら相談した方限定の割引・参加特典付き! 無料相談はこちら

CSSを学習中の方へ

これで解説は終了です、お疲れさまでした。

  • つまずかず「効率的に」学びたい
  • 副業や転職後の「現場で使える」知識やスキルを身につけたい

CSSを学習していて、このように思ったことはありませんか?

テックアカデミーのWebデザインコースでは、第一線で活躍する「プロのWebデザイナー」が教えているので、効率的に実践的なスキルを完全オンラインでしっかり習得できます。

合格率10%の選考を通過した、選ばれたWebデザイナーの手厚いサポートを受けながら、オリジナルのWebサイト制作を完全オンラインでしっかり習得できます。

まずは一度、無料体験で学習の悩みや今後のキャリアについて話してみて、「現役Webデザイナーから教わること」を実感してみてください。

時間がない方、深く知ってから体験してみたい方は、今スグ見られる説明動画から先に視聴することをおすすめします!

初心者・未経験でもできる。まずはテックアカデミーに相談しよう

プログラミングを独学で学習していて、このように感じた経験はないでしょうか?

  • ・調べてもほしい情報が見つからない
  • ・独学のスキルが実際の業務で通用するのか不安
  • ・目標への学習プランがわからず、迷子になりそう

テックアカデミーでは、このような 学習に不安を抱えている方へ、マンツーマンで相談できる機会を無料で提供 しています。
30分間、オンラインでどんなことでも質問し放題です。

「受けてよかった」と感じていただけるよう カウンセラーやエンジニア・デザイナー があなたの相談に真摯に向き合います。

「自分に合っているか診断してほしい」
「漠然としているが話を聞いてみたい」

こんなささいな悩みでも大丈夫です。

無理な勧誘は一切ありません ので、まずはお気軽にご参加ください。
※体験用のカリキュラムも無料で配布いたします。(1週間限定)

今なら参加者限定の割引特典付き! 無料相談を予約する