--- title: overflow slug: Web/CSS/overflow tags: - CSS - CSS プロパティ - CSS 基本ボックスモデル - Reference - overflow - クリッピング - スクロール - レイアウト translation_of: Web/CSS/overflow ---
CSS の overflow
プロパティは、要素の内容が多すぎてブロック整形コンテキストに収まらない場合にどうするかを設定します。これは {{cssxref("overflow-x")}} および {{cssxref("overflow-y")}} の一括指定です。
このデモのソースファイルは GitHub リポジトリに格納されています。デモプロジェクトに協力したい場合は、 https://github.com/mdn/interactive-examples をクローンしてプルリクエストを送信してください。
選択肢としては、クリッピング、スクロールバーの表示、コンテナーの外側にはみ出して周囲の領域に表示するものがあります。
値を (既定値の) visible
以外の値に指定すると、新たなブロック整形コンテキストを生成します。これは技術的な理由で必要なものです。そうでなければ、もしスクロールする要素に浮動要素が交差している時、スクロールするごとに強制的に折り返し処理をやり直すことになり、スクロール操作が遅くなる原因になるからです。
overflow
の効果を得るには、ブロックレベルコンテナーに高さ (height
または max-height
) を設定するか、 white-space
を nowrap
に設定することが必要です。
メモ: 一方の軸をvisible
(既定値) に設定して、もう一方を他の値に設定すると、 visible
は auto
として動作する結果になります。
メモ: JavaScript の {{domxref("Element.scrollTop")}} プロパティは、 overflow
が hidden
に設定されている場合でも HTML 要素をスクロールさせるために使うことができます。
/* キーワード値 */ overflow: visible; overflow: hidden; overflow: clip; overflow: scroll; overflow: auto; overflow: hidden visible; /* グローバル値 */ overflow: inherit; overflow: initial; overflow: unset;
overflow
プロパティは、以下の値の一覧のうち一つまたは二つのキーワードで指定します。二つのキーワードが指定された場合、最初の値が overflow-x
で、二つ目の値が overflow-y
になります。それ以外の場合、 overflow-x
および overflow-y
は同じ値に設定されます。
visible
hidden
clip
hidden
と同様に、コンテンツは要素のパディングボックスに合わせて切り取られます。 clip
と hidden
の違いは、 clip
キーワードがプログラム的なスクロールも含め、すべてのスクロールを禁止することです。ボックスはスクロールコンテナーにはならず、新しい整形コンテキストを始めることもありません。新しい整形コンテキストを始めたいのであれば、 {{cssxref("display", "display: flow-root", "#flow-root")}} を使用して実現することができます。scroll
auto
visible
と同じように表示されますが、新しいブロック整形コンテキストを生成します。デスクトップブラウザーは内容があふれる場合、スクロールバーを表示します。overlay
{{deprecated_inline}}auto
と同じ動作をしますが、場所を取る代わりに内容の先頭にスクロールバーを表示します。 WebKit ベース (例えば Safari) 及び Blink ベース (例えば Chrome 又は Opera) のブラウザーでのみ対応しています。-moz-scrollbars-none
{{obsolete_inline}}[1]overflow:hidden
を使ってください。-moz-scrollbars-horizontal
{{deprecated_inline}}[1]-moz-scrollbars-vertical
{{deprecated_inline}}[1]-moz-hidden-unscrollable
{{non-standard_inline}}<html>
、 <body>
が、矢印キーとマウスホイールでスクロールすることを禁止します。[1] Firefox 63 において、この機能は機能設定に隠されています。 about:config の中で layout.css.overflow.moz-scrollbars.enabled
を true
に設定してください。
p { width: 12em; height: 6em; border: dotted; overflow: visible; /* content is not clipped */ }
visible
(既定)
Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium.
p { overflow: hidden; /* スクロールバー表示なし */ }
p { overflow: scroll; /* 常にスクロールバーを表示 */ }
overflow: scroll
Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium.
p { overflow: auto; /* 必要に応じてスクロールバーを追加 */ }
overflow: auto
Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium.
仕様書 | 状態 | 備考 |
---|---|---|
{{SpecName('CSS3 Overflow', '#propdef-overflow', 'overflow')}} | {{Spec2('CSS3 Overflow')}} |
キーワードを一つだけではなく一つまたは二つで利用できるように構文を変更 |
{{SpecName('CSS3 Box', '#propdef-overflow', 'overflow')}} | {{Spec2('CSS3 Box')}} | 変更なし |
{{SpecName('CSS2.1', 'visufx.html#overflow', 'overflow')}} | {{Spec2('CSS2.1')}} | 初回定義 |
{{cssinfo}}
{{Compat("css.properties.overflow")}}