Movatterモバイル変換


[0]ホーム

URL:


  1. 開発者向けのウェブ技術
  2. CSS
  3. ガイド
  4. CSS 表示方法
  5. フローレイアウトとオーバーフロー

このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docsコミュニティーについてもっと知り、仲間になるにはこちらから。

View in EnglishAlways switch to English

フローレイアウトとオーバーフロー

コンテナーに収まりきらないコンテンツがある場合、オーバーフローが発生します。 CSSでサイズが制約される要素を扱う際には、オーバーフローの動作を理解することが重要です。 このガイドでは、通常のフローで作業する場合のオーバーフローの動作について説明します。HTML はそれぞれの例で同じであるため、最初の節では表示していますが、他の節では簡潔にするために非表示にしています。

オーバーフローとは

要素に固定された高さおよび幅を指定し、そのボックスに重要なコンテンツを追加することで、基本的なオーバーフローの例を作成します。

html
<div>  <p>    One November night in the year 1782, so the story runs, two brothers sat    over their winter fire in the little French town of Annonay, watching the    grey smoke-wreaths from the hearth curl up the wide chimney.  </p></div><p>  Their names were Stephen and Joseph Montgolfier. They were papermakers by  trade, and were noted as possessing thoughtful minds and a deep interest in  all scientific knowledge and new discovery.</p><p>  Before that night—a memorable night, as it was to prove—hundreds of millions  of people had watched the rising smoke-wreaths of their fires without drawing  any special inspiration from the fact.</p>
css
body {  font: 1.2em / 1.5 sans-serif;}.box {  width: 300px;  height: 100px;  border: 5px solid rebeccapurple;  padding: 10px;}

コンテンツがボックスに入ります。ボックスがいっぱいになると、ボックスからあふれ出し、ボックスの外にコンテンツが表示され、場合によっては、その下のコンテンツの下にも表示されます。オーバーフローの動作を制御するのはoverflow プロパティであり、初期値はvisible です。これが、あふれたコンテンツが見える理由です。

オーバーフローの制御

あふれたコンテンツの動作を制御する他の値もあります。あふれたコンテンツを非表示にするには、hidden の値を使用します。これによって、コンテンツの一部が表示されなくなる場合があります。

<div>  <p>    One November night in the year 1782, so the story runs, two brothers sat    over their winter fire in the little French town of Annonay, watching the    grey smoke-wreaths from the hearth curl up the wide chimney.  </p></div><p>  Their names were Stephen and Joseph Montgolfier. They were papermakers by  trade, and were noted as possessing thoughtful minds and a deep interest in  all scientific knowledge and new discovery.</p><p>  Before that night—a memorable night, as it was to prove—hundreds of millions  of people had watched the rising smoke-wreaths of their fires without drawing  any special inspiration from the fact.</p>
css
body {  font: 1.2em / 1.5 sans-serif;}.box {  width: 300px;  height: 100px;  border: 5px solid rebeccapurple;  padding: 10px;  overflow: hidden;}

scroll の値を使用すると、コンテンツがボックス内に収められ、スクロールバーが追加されて表示できるようになります。コンテンツがボックス内に収まる場合でも、スクロールバーは追加されます。

<div>  <p>    One November night in the year 1782, so the story runs, two brothers sat    over their winter fire in the little French town of Annonay, watching the    grey smoke-wreaths from the hearth curl up the wide chimney.  </p></div><p>  Their names were Stephen and Joseph Montgolfier; they were papermakers by  trade and were noted as possessing thoughtful minds and a deep interest in all  scientific knowledge and new discoveries.</p><p>  Before that night—a memorable night, as it was to prove—hundreds of millions  of people had watched the rising smoke-wreaths of their fires without drawing  any special inspiration from the fact.</p>
css
body {  font: 1.2em / 1.5 sans-serif;}.box {  width: 300px;  height: 100px;  border: 5px solid rebeccapurple;  padding: 10px;  overflow: scroll;}

auto の値を使用すると、コンテンツがボックス内に収まる場合は、スクロールバーなしでコンテンツが表示されます。収まらない場合は、スクロールバーが追加されます。次の例を比較すると、上記のoverflow: scroll の例では、縦方向のスクロールのみが必要であっても、水平および垂直のスクロールバーが現れていることが分かるでしょう。下記のauto の例では、スクロールが必要な方向にのみスクロールバーが現れます。

<div>  <p>    One November night in the year 1782, so the story runs, two brothers sat    over their winter fire in the little French town of Annonay, watching the    grey smoke-wreaths from the hearth curl up the wide chimney.  </p></div><p>  Their names were Stephen and Joseph Montgolfier, they were papermakers by  trade, and were noted as possessing thoughtful minds and a deep interest in  all scientific knowledge and new discovery.</p><p>  Before that night—a memorable night, as it was to prove—hundreds of millions  of people had watched the rising smoke-wreaths of their fires without drawing  any special inspiration from the fact.</p>
css
body {  font: 1.2em / 1.5 sans-serif;}.box {  width: 300px;  height: 100px;  border: 5px solid rebeccapurple;  padding: 10px;  overflow: auto;}

すでに学んだように、visible という既定値以外のいずれかの値を使用すると、新しいブロック整形コンテキストが作成されます。

メモ:オーバーフローレベル 3 の草案では、overflow: clip という追加の値があります。これはoverflow: hidden のような動作をしますが、プログラムによるスクロールは許可されず、ボックスはスクロール不可能になります。さらに、ブロック整形コンテキストも作成されません。

overflow プロパティは、実際にはoverflow-x およびoverflow-y プロパティの一括指定です。 overflow に 1 つの値のみを指定した場合、この値は両方の軸に使用されます。しかし、どちらの値も指定することができます。その場合、最初の値はoverflow-x (つまり水平方向)に使用され、 2 番目の値はoverflow-y (つまり垂直方向)に使用されます。例えば、下記ではoverflow-y: scroll のみを指定しています。そのため、不要な水平スクロールバーは表示されません。

<div>  <p>    One November night in the year 1782, so the story runs, two brothers sat    over their winter fire in the little French town of Annonay, watching the    grey smoke-wreaths from the hearth curl up the wide chimney.  </p></div><p>  Their names were Stephen and Joseph Montgolfier, they were papermakers by  trade, and were noted as possessing thoughtful minds and a deep interest in  all scientific knowledge and new discovery.</p><p>  Before that night—a memorable night, as it was to prove—hundreds of millions  of people had watched the rising smoke-wreaths of their fires without drawing  any special inspiration from the fact.</p>
css
body {  font: 1.2em / 1.5 sans-serif;}.box {  width: 300px;  height: 100px;  border: 5px solid rebeccapurple;  padding: 10px;  overflow-y: scroll;}

フローに相対的なプロパティ

書字方向とフローレイアウトのガイドでは、block-sizeinline-size のプロパティについて説明しました。これらは、画面の物理的な寸法にレイアウトを合わせるよりも、さまざまな書字方向で作業する際に意味をなすものです。CSS オーバーフローモジュールには、 overflow 用のフロー相対プロパティとして、overflow-blockoverflow-inline も含んでいます。これらは、overflow-xoverflow-y に対応しますが、対応付けは文書内の書字方向によって異なります。

オーバーフローの指示

CSS オーバーフローモジュールには、あふれたコンテンツの見た目を改善するために役立つプロパティがいくつかあります。

インライン軸のオーバーフロー

text-overflow プロパティは、インライン方向におけるテキストのオーバーフローを扱います。これは 2 つの値のうちの 1 つにclip があると、コンテンツがあふれたときにコンテンツが切り取られます。これが既定値であり、既定の動作です。また、ellipsis という値もあり、これは省略記号を表示します。省略記号は、使用する言語や書字方向に適した別の文字に置き換えることができます。

<div>  <p>    One November night in the year 1782, so the story runs, two brothers sat    over their winter fire in the little French town of Annonay, watching the    grey smoke-wreaths from the hearth curl up the wide chimney.  </p>  <p>    Their names were Stephen and Joseph Montgolfier, they were papermakers by    trade, and were noted as possessing thoughtful minds and a deep interest in    all scientific knowledge and new discovery.  </p>  <p>    Before that night—a memorable night, as it was to prove—hundreds of millions    of people had watched the rising smoke-wreaths of their fires without    drawing any special inspiration from the fact.  </p></div>
css
body {  font: 1.2em / 1.5 sans-serif;}.box {  width: 300px;  border: 5px solid rebeccapurple;  padding: 10px;}.box p {  white-space: nowrap;  text-overflow: ellipsis;  overflow: hidden;}

ブロック軸のオーバーフロー

オーバーフローレベル 3 の仕様書では、block-ellipsis プロパティが追加されました(以前はblock-overflow と呼ばれていました)。このプロパティにより、ブロック方向にテキストがオーバーフローした場合に、省略記号(またはカスタム文字列)を追加することができますが、執筆時点ではこのプロパティに対応しているブラウザーはありません。

例えば、記事の一覧があり、その一覧をテキストの量が制限された固定の高さのボックスに表示する場合に役立ちます。ボックスやタイトルをクリックすると、さらにコンテンツがあることが、読者にはわかりにくい場合が考えられます。省略記号は、さらにコンテンツがあることを明確に示します。この仕様では、コンテンツの文字列または通常の省略記号を挿入することができます。

まとめ

ウェブ上の連続メディアでも、印刷や EPUB などのページメディア形式でも、コンテンツがどのようにあふれるのかを理解することは、どのようなレイアウトメソッドを扱う場合にも役立ちます。通常のフローでオーバーフローがどのように動作するのかを理解することで、グリッドやフレックスボックスなどのレイアウトメソッドでコンテンツがあふれた場合の影響を理解しやすくなります。

関連情報

Help improve MDN

Learn how to contribute

This page was last modified on byMDN contributors.


[8]ページ先頭

©2009-2025 Movatter.jp