【CSS 3-2】よくあるつまずき|CSSが効かない・崩れる・優先順位で困ったときの見直し方(初心者向け)
CSSを書き始めると、
思った通りに変わる時もあれば、
「書いたのに効かない」
「急に崩れた」
「さっきまで動いていたのに分からなくなった」
となることがあります。
これは初心者だけの話ではなく、
ある程度慣れてきても普通に起きます。
今回は、
CSSが効かない
レイアウトが崩れる
思った見た目にならない
この3つを中心に、
どこから見直すと落ち着いて直しやすいかを整理します。
- 「うまくいかない時は“書き直す”前に“確認する順番”を持つとかなり楽です」
-
最初はこの順番だけで大丈夫です。
- そのCSSは本当にその要素に当たっているか
- スペルや記号のミスがないか
- ほかのCSSに上書きされていないか
- Flexなら、親と子のどちらに書く指定かを見直す
つまり、
「書いた内容」より先に、
「当たる場所」「書き方」「上書き」「親子関係」
を見る流れです。この順番があるだけで、
行き当たりばったりで迷いにくくなります。
今回のゴール
- CSSが効かない時の見直し順が分かる
- レイアウトが崩れた時に、親と子を見直せる
- 優先順位で上書きされる感覚をざっくり持てる
- 次の実用ページ制作で止まりにくくなる
まず最初に見る4つ
| まず見る所 | 確認すること |
|---|---|
| セレクタ | そのCSSが本当にその要素を指しているか |
| 書き方 | ; や { } の抜け、スペルミスがないか |
| 上書き | ほかのCSSがあとから当たっていないか |
| 親子関係 | Flexなどで、親に書く指定と子に書く 指定が混ざっていないか |

見た目がおかしい時ほど、いきなり全部書き換えず、
この4つだけ順番に見るのがおすすめです。
CSSが効かない
CSSが効かない時は、まず「その要素を正しく選べているか」を見ます。
たとえば、HTMLがこうだとします。
<div class="profile-text">
<p>サンプル文章です。</p>
</div>HTMLこの時、CSSは
.profile-text {
color: #2563eb;
}CSSなら当たりますが、
※class 名(.profile-text)、
.profiletext {
color: #2563eb;
}CSSのように class 名(.profiletext)が少しでも違うと当たりません。
| 見直す所 | 例 |
|---|---|
| class 名 | profile-text と profiletext が違う |
| id 名 | #main と #Main は別物 |
| タグ名 | button に書いたつもりが a だった |
| 記号 | . と # を取り違えている |
記号や区切りのミスで止まる
CSSは、少しの書き方ミスでその行が効かなくなることがあります。
たとえば、
h1 {
color: #2563eb /* ; が抜けている */
font-size: 32px;
}CSSこのように color の行の最後の ; が抜けていると、
その後の見え方までおかしくなることがあります。
- 行の最後に ; があるか
- { と } が対応しているか
- color や margin のスペルが違っていないか
- 数字と単位(24px など)が抜けていないか

「何が悪いか分からない」時ほど、
まず記号を見直すだけで直ることがかなり多いです。
※Visual Studio Code等、プログラム用のエディタだと
保存する前に下記画像のようになり気づきやすいです。

font-size前が赤く表示される・タブのファイル名の部分も赤く表示されます。
思った見た目にならない時は“上書き”を疑う
| 書き方 | どうなる? |
|---|---|
| 先に書いたCSS | 後ろの同じ指定で上書きされやすい |
| 後に書いたCSS | 前の指定を上書きしやすい |
| より細かい指定 | 強く当たりやすい |
例:こう書いてあるとします。
p {
color: #333333;
}
.profile-text p {
color: #2563eb;
}CSSこの場合は、
.profile-text の中にある p の方が、より細かく指定されているので、
青(#2563eb;)の方が当たりやすくなります。
“優先順位”
全部覚えなくて大丈夫です。
まずは、
- あとに書いたCSSが勝つことがある
- より細かく指定した方が強いことがある
この2つが分かれば十分進めます。
Flex が崩れる時は“親と子”を分けて考える
| どこに書く? | 役割 |
|---|---|
| 親要素 | 並び方を決める |
| 子要素 | サイズや見た目を整える |
CSS 3-1 でやった Flex は、
並びたい要素を包んでいる親に書くのが基本です。
たとえば、
<section class="profile-layout">
<img src="images/sample.jpg" alt="サンプル画像" />
<div class="profile-text">
<p>サンプル文章です。</p>
</div>
</section>HTMLこの時に display: flex; を書く場所は、
img や .profile-text ではなく、
.profile-layout です。
.profile-layout {
display: flex;
gap: 24px;
}CSS画像が大きすぎてレイアウトが崩れる
画像は、そのままだと想像より大きく表示されることがあります。
特に Flex の中に入れると、
画像が大きすぎて文章が押し出されることがあります。
そんな時は、画像側の width を調整します。
.profile-layout img {
width: 200px;
height: auto;
}CSS- 画像の幅を小さくするとバランスが見やすくなる
- height: auto; を入れると縦横比が崩れにくい
- 最初は 160px〜240px くらいで試すと違いが見やすい
幅を入れたら逆にはみ出した
| よくある状況 | 見直す所 |
|---|---|
| input がはみ出す | width: 100%; と box-sizing |
| main が窮屈 | width が小さすぎないか |
| 画像が押し出す | img の width を下げる |
たとえば入力欄では、
input,
textarea {
width: 100%;
box-sizing: border-box;
}CSSのように、
box-sizing: border-box; があると、
幅を扱いやすくしやすいです。
今は深く覚えるより、
「幅で変な崩れ方をしたら box-sizing を確認する」
くらいで大丈夫です。
困った時の見直し順
- そのCSSは、本当にその要素を選べているか
- class 名や id 名のスペルが合っているか
- ; や { } が抜けていないか
- ほかのCSSにあとから上書きされていないか
- Flexなら、親と子のどちらに書く指定か見直したか
- 画像や幅が大きすぎて押し出していないか

うまくいかない時は、
順番があるだけでかなり楽になります。
最初はこのチェックだけで十分です。
- class 名をあえて1文字変えて、CSSが効かなくなるのを見てみる
- ; を1つ外して、どこが崩れるか見てみる
- .profile-layout の display: flex; を消して違いを見る
- gap の数字を 24px → 8px にして違いを見る
- 画像の width を 200px → 300px にして崩れ方を見る
今回の回は、きれいに作るためというより、
「崩れた時に、どこを見ると戻しやすいか」を体験する意味があります。
よくあるつまずき
- 「CSSを書いたのに、まったく変わらない」
-
まずはセレクタを見直します。
- class 名や id 名が合っているか
- . と # を取り違えていないか
- 書いたCSSが、その要素を本当に指しているか
最初は難しい問題より、
名前のずれで止まる方がかなり多いです。
- 「Flex にしたら急に崩れた」
-
親と子の指定が混ざっていないかを見ます。
- display: flex; は親
- width や border は子にも書くことがある
“並び方は親が決める”
と覚えておくと整理しやすいです。
- 「思った色やサイズにならない」
-
ほかのCSSに上書きされている可能性があります。
- あとに書いたCSSが勝っていないか
- より細かい指定が入っていないか
最初は「優先順位があるんだな」と分かれば十分です。
- 「どこから直せばいいか分からなくなる」
-
いきなり全部書き直さなくて大丈夫です。
この順番だけ見ます。
- セレクタ
- スペルと記号
- 上書き
- 親と子
- 幅や画像サイズ
これだけで、かなり戻しやすくなります。
今回のまとめ
- CSSが効かない時は、まずセレクタを見る
- 記号やスペルのミスは意外と多い
- 思った見た目にならない時は、上書きを疑う
- Flex が崩れる時は、親と子の役割を見直す
- 困った時は、確認の順番を持つとかなり進みやすい
CSS 4-1へ
ここまでで、
CSSの前半で出やすいつまずきを一通り整理できました。
次は、
ここまでの HTML と CSS を使って、
実際に自己紹介ページを1ページ作っていきます。
PR:HTMLを進めるための参考(必要な方だけ)
HTML/CSSの最初の土台づくり用に、1冊だけ置いておきます。
※価格や在庫は変わるため、最終確認はリンク先でお願いします。
PR:最初の1冊を読み終えた方へ
HTML/CSSの全体像をつかんだあとに、CSSの見た目調整や模擬コーディングをもう少し深めたい方向けの1冊です。
今回は自己紹介ページのように、「見出し・画像・余白・並び方」を組み合わせて整える感覚と相性の良いものを置いておきます。
※価格や在庫は変わるため、最終確認はリンク先でお願いします。

