CSS - overflow-*
概要
説明
コンテンツが要素の高さや横幅を超えた場合に、スクロールして表示する、表示しない、はみ出して表示するなどを指定します。overflow: は値を 1~2個指定することができます。1個の場合は横方向、縦方向双方に適用され、2個の場合は横方向、縦方向の順で適用されます。
- visible
- 要素の領域をはみ出して、コンテンツを表示します。
- hidden
- 要素の領域をはみ出したコンテンツは表示しません。
- scroll
- 要素の領域をはみ出したコンテンツはスクロールで表示します。常にスクロールバーを表示します。
- auto
- 必要に応じてスクロールで表示します。スクロール不要な場合はスクロールバーを表示せず、スクロールが必要な時のみスクロールバーを表示します。
- clip
hidden
とほぼ同じ動作ですが、hidden
はスクロールアウトした要素が単に見えなくなるだけなのに対し、clip
はその要素の存在自体が無くなった様に振舞います。後述の clipの使用例 を参照してください。
使用例
CSS
.my-box {
border: 1px solid #999999;
width: 400px;
height: 100px;
margin-bottom: 2em;
}
.overflow-visible { overflow: visible; }
.overflow-hidden { overflow: hidden; }
.overflow-scroll { overflow: scroll; }
.overflow-auto { overflow: auto; }
.overflow-clip { overflow: clip; }
HTML
<h3">visible</h3>
<my-box overflow-visible">Lorem ipsum dolor sit amet, ...</div>
<h3">hidden</h3>
<my-box overflow-hidden">Lorem ipsum dolor sit amet, ...</div>
<h3">scroll</h3>
<my-box overflow-scroll">Lorem ipsum dolor sit amet, ...</div>
<h3">auto</h3>
<my-box overflow-auto">Lorem ipsum dolor sit amet, ...</div>
<h3">clip</h3>
<my-box overflow-clip">Lorem ipsum dolor sit amet, ...</div>
表示
visible
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
hidden
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
scroll
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
auto
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
clip
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
clip の使用例
position:sticky
を使用する際、親要素に display:hidden
を指定したい場合、hidden
を指定してしまうと sticky
が効かなくなります。hidden
の代わりに display:clip
を使用することでこの問題を回避することができます。
CSS
.my-clip-example {
width: 400px;
height: 180px;
margin: 8px auto;
border: 1px solid #ccc;
overflow: auto;
.content {
width: 340px;
margin: 24px auto;
border: 1px solid #ccc;
border-radius: 25px;
text-align: center;
background-color: #eee;
.menu {
position: sticky;
top: 0;
padding: 16px;
background-color: #000;
color: #fff;
}
}
}
.overflow-hidden { overflow: hidden; }
.overflow-clip { overflow: clip; }
HTML
<div class="my-clip-example">
<div class="content overflow-hidden">
<div class="menu">
MENU#1 / MENU#2
</div>
<div>AAA</div>
<div>AAA</div>
<div>AAA</div>
...
</div>
</div>
<div class="my-clip-example">
<div class="content overflow-clip">
<div class="menu">
MENU#1 / MENU#2
</div>
<div>AAA</div>
<div>AAA</div>
<div>AAA</div>
...
</div>
</div>
上段は hidden
を指定しているので sticky
が効かずメニューをスクロールアウトしてしまいます。下段は hidden
の代わりに clip
を指定しているのでメニューが上部に張り付きます。
表示
AAA
AAA
AAA
AAA
AAA
AAA
AAA
AAA
AAA
AAA
AAA
AAA
AAA
AAA
AAA
AAA
AAA
AAA
AAA
AAA
AAA
AAA
AAA
AAA
AAA
AAA
AAA
AAA
AAA
AAA
AAA
AAA
AAA
AAA
AAA
AAA
関連項目
overflow,
overflow-x,
overflow-y
リンク
Copyright (C) 1997-2025 杜甫々
初版:1997年7月27日、最終更新:2025年3月9日
https://www.tohoho-web.com/css/prop/overflow.htm