CSS
PR

【CSS 3-2】よくあるつまずき|CSSが効かない・崩れる・優先順位で困ったときの見直し方(初心者向け)

CSS3-2_compressed.webp
toshi
記事内に商品プロモーションを含む場合があります

※この記事は CSS 3-2「よくあるつまずき」です。
ここでは新しい見た目を増やすより、
「うまく効かない時にどこを見るか」を整理します。
最初は全部覚えなくて大丈夫です。
困った時に戻ってくる確認用として使えればOKです。

CSSを書き始めると、
思った通りに変わる時もあれば、
「書いたのに効かない」
「急に崩れた」
「さっきまで動いていたのに分からなくなった」
となることがあります。

これは初心者だけの話ではなく、
ある程度慣れてきても普通に起きます。

今回は、
CSSが効かない
レイアウトが崩れる
思った見た目にならない
この3つを中心に、
どこから見直すと落ち着いて直しやすいかを整理します。

Q
「うまくいかない時は“書き直す”前に“確認する順番”を持つとかなり楽です」

最初はこの順番だけで大丈夫です。

  1. そのCSSは本当にその要素に当たっているか
  2. スペルや記号のミスがないか
  3. ほかのCSSに上書きされていないか
  4. Flexなら、親と子のどちらに書く指定かを見直す

つまり、
「書いた内容」より先に、
「当たる場所」「書き方」「上書き」「親子関係」
を見る流れです。

この順番があるだけで、
行き当たりばったりで迷いにくくなります。

ここだけ先に

まず最初に見る4つ

まず見る所確認すること
セレクタそのCSSが本当にその要素を指しているか
書き方; や { } の抜け、スペルミスがないか
上書きほかのCSSがあとから当たっていないか
親子関係Flexなどで、親に書く指定と子に書く
指定が混ざっていないか
toshi
toshi

見た目がおかしい時ほど、いきなり全部書き換えず、
この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が効かない = 難しい問題」ではなく、
「名前の指定が少しずれているかも」と考えると落ち着きやすいです。

つまずき②

記号や区切りのミスで止まる

CSSは、少しの書き方ミスでその行が効かなくなることがあります。

たとえば、

h1 {
  color: #2563eb		/* ; が抜けている */
  font-size: 32px;
}
CSS

このように color の行の最後の ; が抜けていると、
その後の見え方までおかしくなることがあります。

  • 行の最後に ; があるか
  • { と } が対応しているか
  • color や margin のスペルが違っていないか
  • 数字と単位(24px など)が抜けていないか
toshi
toshi

「何が悪いか分からない」時ほど、
まず記号を見直すだけで直ることがかなり多いです。

※Visual Studio Code等、プログラム用のエディタだと
保存する前に下記画像のようになり気づきやすいです。

ERROR_CSS3-2_h1.webp
※ エディタで /* ; が抜けている */ 部分は追記表示されません
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 がうまくいかない時は、
「その指定は親に書くものか、子に書くものか」
を見直すと整理しやすいです。

つまずき⑤

画像が大きすぎてレイアウトが崩れる

画像は、そのままだと想像より大きく表示されることがあります。

特に 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なら、親と子のどちらに書く指定か見直したか
  • 画像や幅が大きすぎて押し出していないか
toshi
toshi

うまくいかない時は、
順番があるだけでかなり楽になります。
最初はこのチェックだけで十分です。

少しだけ試してみる(練習)
  • class 名をあえて1文字変えて、CSSが効かなくなるのを見てみる
  • ; を1つ外して、どこが崩れるか見てみる
  • .profile-layout の display: flex; を消して違いを見る
  • gap の数字を 24px → 8px にして違いを見る
  • 画像の width を 200px → 300px にして崩れ方を見る

今回の回は、きれいに作るためというより、
「崩れた時に、どこを見ると戻しやすいか」を体験する意味があります。

ここだけ確認

よくあるつまずき

Q
「CSSを書いたのに、まったく変わらない」

まずはセレクタを見直します。

  • class 名や id 名が合っているか
  • . と # を取り違えていないか
  • 書いたCSSが、その要素を本当に指しているか

最初は難しい問題より、
名前のずれで止まる方がかなり多いです。

Q
「Flex にしたら急に崩れた」

親と子の指定が混ざっていないかを見ます。

  • display: flex; は親
  • width や border は子にも書くことがある

“並び方は親が決める”
と覚えておくと整理しやすいです。

Q
「思った色やサイズにならない」

ほかのCSSに上書きされている可能性があります。

  • あとに書いたCSSが勝っていないか
  • より細かい指定が入っていないか

最初は「優先順位があるんだな」と分かれば十分です。

Q
「どこから直せばいいか分からなくなる」

いきなり全部書き直さなくて大丈夫です。

この順番だけ見ます。

  1. セレクタ
  2. スペルと記号
  3. 上書き
  4. 親と子
  5. 幅や画像サイズ

これだけで、かなり戻しやすくなります。

ここだけ押さえればOK

今回のまとめ

  • CSSが効かない時は、まずセレクタを見る
  • 記号やスペルのミスは意外と多い
  • 思った見た目にならない時は、上書きを疑う
  • Flex が崩れる時は、親と子の役割を見直す
  • 困った時は、確認の順番を持つとかなり進みやすい
できた判定

今日のゴール確認

ここまでできたらOKです。

  • CSSが効かない時の見直し順が分かった
  • 崩れた時に、親と子を切り分けて見られるようになった
  • 優先順位の入口をざっくりつかめた
  • 次の実用ページ制作に進みやすくなった

※一例として今回の内容の確認と復習を含めて作成したものを
zipファイルとして置いておきます。今回の階層も下記のようになります。

CSS3-2/
├─ index.html
├─ style.css
└─ images/
 └─ sample.jpg

次に読む

CSS 4-1へ

ここまでで、
CSSの前半で出やすいつまずきを一通り整理できました。

次は、
ここまでの HTML と CSS を使って、
実際に自己紹介ページを1ページ作っていきます。

PR:最初の1冊(必要な方だけ)

PR:HTMLを進めるための参考(必要な方だけ)
HTML/CSSの最初の土台づくり用に、1冊だけ置いておきます。
※価格や在庫は変わるため、最終確認はリンク先でお願いします。

PR:最初の1冊を読み終えた方へ
HTML/CSSの全体像をつかんだあとに、CSSの見た目調整や模擬コーディングをもう少し深めたい方向けの1冊です。
今回は自己紹介ページのように、「見出し・画像・余白・並び方」を組み合わせて整える感覚と相性の良いものを置いておきます。
※価格や在庫は変わるため、最終確認はリンク先でお願いします。

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

ABOUT ME
toshi
toshi
フルスタックエンジニア
C型肝炎や感染症の闘病を経て現在通院中
フリーランスとして今日を生きる、それがすべて。
静かな光の中で、歩みを止めずに生きていく。
実験大好きなので色々とやっていきます。
Recommend
こちらの記事もどうぞ
記事URLをコピーしました