【CSS】background-colorが効かない原因5選|背景色が反映されない時の対処法
今回は、「background-color が効かない原因と対処法」について紹介します。
CSSを書いていると、
- 背景色を指定したのに反映されない
- 一部分だけ色がつかない
- なぜか透明になってしまう
といった経験をしたことがある人も多いのではないでしょうか?
実は、background-color が効かない原因はいくつかあり、CSS初心者がつまずきやすいポイントでもあります。
この記事では、背景色が反映されない主な原因と、その解決方法について分かりやすく解説していきます!
目次
background-color が効かない主な原因
背景色の background-color が効かない原因は、主に以下のようなものがあります。
- width・height が適切に指定されていない
- CSSの優先順位が低い
- z-index の重なり順がおかしい
- 要素自体に高さがない
- display の影響を受けている
- background-color が上書きされている
- opacity が指定されている
- 親要素の影響を受けている
それぞれ詳しく見ていきましょう!
widthとheightのどちらの値が指定されていない場合
背景色を指定したい要素に、width や height が適切に設定されていない場合、背景色が見えないことがあります。
例えば以下のようなコードです。
.box {
background-color: red;
}
<div class="box"></div>
対処法
height を指定することで解決できます。
.box {
width: 200px;
height: 200px;
background-color: red;
}
CSSの優先順位が低い場合
CSSには「優先順位」があります。
別のCSSで背景色が上書きされている場合、background-color が効かないことがあります。
例えば以下のようなケースです。
.box {
background-color: red;
}
div {
background-color: blue;
}
読み込み順によっては、青色が優先される場合があります。
対処法
Google Chrome の「デベロッパーツール」を使って、どのCSSが適用されているか確認しましょう。
デベロッパーツールの開き方
- Windows:F12
- Mac:command + option + I
適用されているCSSには打ち消し線が表示されるので、原因を見つけやすくなります。
z-indexの重なり順がおかしい場合
z-index が原因で、背景色を指定した要素が別要素の裏側に隠れていることがあります。
.box {
position: relative;
z-index: 1;
background-color: red;
}
.overlay {
position: absolute;
z-index: 10;
background-color: black;
}
.overlay が前面に表示されるため、.box の背景色が見えなくなります。対処法
z-indexの数値を確認する- position が指定されているか確認する
- 要素の重なり順を整理する
要素に高さがない場合
特に float を使っている場合に多いのですが、親要素の高さがなくなって背景色が表示されないことがあります。
.parent {
background-color: yellow;
}
.child {
float: left;
}
子要素が float すると、親要素の高さが消えてしまうことがあります。
対処法
clearfix を使うか、display: flow-root; を指定しましょう。
.parent {
background-color: yellow;
display: flow-root;
}
display の影響を受けている場合
display: inline; の要素は、高さや幅がうまく効かない場合があります。
span {
background-color: red;
}
対処法
必要に応じてinline-blockやblockを指定しましょう。
span {
display: inline-block;
background-color: red;
}
.parent {
background-color: yellow;
display: flow-root;
}
background-color が効かない時のチェックリスト
背景色が反映されない時は、以下を確認してみましょう!
✅ 要素に高さがあるか
✅ width / height が適切か
✅ CSSが上書きされていないか
✅ z-index の重なり順は正しいか
✅ opacity が0になっていないか
✅ display の種類は適切か
✅ 親要素に問題がないか
まとめ
以上が、「background-color が効かない原因と対処法」でした!
CSSで背景色が反映されない場合は、
- 要素サイズ
- CSSの優先順位
- z-index
- display
- 親要素
などを確認することで、多くの場合は解決できます。
特に初心者のうちは、「CSSが効かない=記述ミス」と思いがちですが、実際には別のCSSに上書きされているケースもかなり多いです。
困った時は、Chromeのデベロッパーツールを使って確認するクセをつけると、かなり効率よく原因を見つけられるようになります!
DOWNLOAD
ブログ用WordPressテーマを無料配布中
実務で使える構成・設計をベースにしたテーマです。
すぐにブログ運用を始めたい方はこちらからダウンロードできます。
Webサイトの集客や導線設計でお悩みではありませんか?
当社では、データ分析(GA4・検索データ)をもとに、
成果につながるWeb制作・改善をご提案しています。
課題の整理からでも大丈夫ですので、まずはお気軽にご相談ください。
無料で相談する



