BG背景切れ改善 CSS
Webサイトをデザインしていると、背景グラデーションが途中で切れてしまう現象に出会ったことはありませんか?
たとえば body
に linear-gradient()
を指定しているのに、画面の途中で真っ白になる。
その原因は、意外にもCSSの“高さ”の仕様にあります。
Contents
❓ なぜ背景が途切れるのか
多くの人がまず以下のように html
や body
に背景を指定します
しかしこの指定だけでは、背景が画面全体に表示されないことがあります。
✅ 理由は、「height: 100%」は親要素依存だから
html
→ ブラウザのビューポート(≒画面の高さ)body
→html
の高さ = 中身が少ないと body の高さも小さい→ 中の
.container
などがoverflow: hidden
やposition: absolute
の影響を受けて「小さく」なると、背景の表示範囲も小さくなる💡 解決法:「ラッパー構造」で背景を別管理する
この問題を根本的に回避する方法が、背景専用のラッパーを用意することです。
✅ HTML構造(例)
✅ CSS指定(例)
🎯 なぜこの方法でうまくいくのか
背景の
linear-gradient
をbody
に指定すると、body
の高さに依存します。
ところが、container
にoverflow: hidden
やposition: absolute
などがあると、body
の高さが中身に追従しなくなるのです。一方
.background-wrap
にmin-height: 100vh
を指定すると:画面高を確実に確保
中身が短くても背景だけはしっかり表示
CSSの構造を「背景」と「中身」で分離でき、再利用しやすい
✅ まとめ:CSSでは“構造”と“背景”を切り離そう
よくあるミス 推奨される方法 body
にbackground
を設定.background-wrap
を使って背景を分離overflow: hidden
による高さ制限min-height: 100vh
を背景ラッパーに指定グラデーションが途切れる 常に画面いっぱいの背景表示を保証 📘 補足:リセットCSSやFlex構造との相性
CSSリセット(reset.css)で
body
のマージンが0
になっているか確認Flexレイアウトで親要素が
height: 100%
になっていないと、min-height: 100vh
の指定も無効になることがある
🧪 まとめ
背景グラデーションが途中で切れてしまう問題は、意外と“高さの継承”が原因であることが多いです。
その場しのぎのheight: auto
やoverflow: visible
ではなく、「背景専用ラッパー」を設けてmin-height: 100vh
を与えることで、設計として安定した背景制御ができます。CSSで背景がうまくいかないときは、**「誰が高さを支配してるのか」**に立ち返ると解決の糸口が見えてきますよ。

世界すべての人を Live Rich にするウェブメディア 『デザイニスト』。美的•情操文化をデザイナーや芸術家という領域だけでなく、企業活動や生活の隅々に至るまで浸透させることを目標としています。最新カメラ情報から制作チュートリアル、香港デモ、ライフデザインに関する様々な情報をお届け!@designistJP