【入門編】 :first-child 疑似クラス – CSS実践ガイド

こんにちは。Webの世界へようこそ。
CSSを学び始めると、最初は「文字の色を変える」「大きさを変える」といった魔法のような体験にワクワクしますよね。でも、いざ本格的なレイアウトを作ろうとすると、「あれ?この要素だけ少し余白が欲しいのに、全部に余白がついちゃう!」なんていう壁にぶつかることはありませんか?

そう、そんな時こそ、CSSの「構造的疑似クラス」という、ちょっと賢い助っ人の出番です。今日はその中でも、最も優しくて頼りになる `:first-child` (ファースト・チャイルド)について、じっくりお話ししましょう。

—

`:first-child` って何者?

直訳すると「最初の子」。その名の通り、「ある親要素の中に並んでいる兄弟たちの中で、一番最初のお兄ちゃん(またはお姉ちゃん)だけに特別なスタイルをあげる」というセレクタです。

例えば、スーパーのレジの列を想像してみてください。
「一番最初に並んでいる人だけ、ちょっと特別なクーポン券を渡す」といった仕組みを作りたいとき、いちいちその人に名前をつけて特別な印をつけるのは面倒ですよね? そこでこの `:first-child` を使えば、「列の先頭にいる人!」と指定するだけで、自動的に対象を見つけてくれるんです。

なぜこれが必要なの?(「余白問題」を例に)

Web制作で最もよくある「あるある」が、リストの余白問題です。
例えば、メニューバーを作るとき、すべてのボタンに `margin-top`(上の余白)をつけると、一番上のボタンにも余白がついてしまい、親ボックスから少し浮いて見えてしまいます。

「一番上のボタンだけ余白を消したい!」
そんなとき、これまでは個別にクラス名をつけて消していましたが、`:first-child` を使えばこんなにスマートに解決できます。

実践!コードを見てみよう

/ リストのすべての項目に上の余白をつけたい /
li {
margin-top: 20px;
}

/ でも、一番最初の子要素(最初のお兄ちゃん)だけは余白をゼロにする! /
li:first-child {
margin-top: 0;
}

どうでしょう? これだけで、全体にルールを適用しつつ、最初の子だけルールを書き換えるという「例外処理」が、とっても綺麗なコードで書けてしまうんです。

—

つまずきやすいポイント:ここだけ気をつけて!

初心者の皆さんがよくやってしまう間違いが、「 `:first-child` は親要素の最初の要素につける」というルールを少し勘違いしてしまうこと。

例えば、こんなHTMLがあったとします。

ここで `li:first-child` と書くと、しっかり「メニュー1」が選ばれます。でも、もしここに `

` の直下にいきなり `

  • ` が並んでいなかったり、想定外のタグが混ざっていたりすると、「あれ?選ばれない?」と焦ることがあります。

    合言葉は「親から見て、一番最初の子は誰?」です。
    その場所が、本当に指定したタグ(`li`など)であるかを確認する。これさえ意識すれば、もう怖いものはありませんよ。

    —

    現場のチーフアーキテクトからのアドバイス

    実務の世界では、`:first-child` は「デザインの規律を守るための守護神」のような存在です。

    コードをたくさん書くほど、個別に「余白なしクラス(.no-margin)」のような名前をつけて管理するのは、実は後々メンテナンスが大変になります。「最初の子は余白なし」というルールをCSS側で自動化しておけば、HTML側はシンプルに保てますよね。

    「CSSは、HTMLを汚さないように書く」
    これが、プロの現場で大切にされている哲学の一つです。`:first-child` を使うことは、まさにその第一歩なんです。

    —

    最後に:まずは触ってみよう

    難しく考えすぎなくて大丈夫です。まずはご自身の練習用のHTMLで、
    「一番最初の見出しだけ赤くしてみようかな?」
    「リストの一番最初だけ、背景色を変えてみようかな?」
    と、小さな実験をしてみてください。

    ブラウザの画面で、狙った通りに一番最初の子だけが変化したとき、「お、CSSが自分の意図を理解してくれた!」という最高の瞬間が訪れます。その感覚を、ぜひ楽しんでくださいね。

    もし分からないことがあっても大丈夫。何度だって書き直せますし、CSSは何度間違えても怒りません。一緒にゆっくり、ステップアップしていきましょう!

  • コメント

    タイトルとURLをコピーしました