【入門編】 :first-child, :last-child, :only-child – CSS実践ガイド

やあ、CSSの世界へようこそ。
フロントエンドの深淵を覗き込んでいるキミへ、まずは歓迎の握手を。

CSSを学び始めたばかりの頃って、まるで「魔法の呪文」を覚えるみたいでワクワクするよね。でも、いざコードを書こうとすると「あれ? どうしてこの要素だけ色が塗れないんだ?」なんて壁にぶつかることも多いはず。

今日は、そんなキミが必ず一度は通る道、「兄弟たちの中から、特別な誰かを見つけ出す魔法」について話そう。`first-child`、`last-child`、そして`only-child`だ。

これらは難しそうに見えるけど、実は私たちの日常にある「お買い物の列」を想像すれば、驚くほどスッキリ理解できるんだ。肩の力を抜いて、一緒に見ていこうか。

—

1. 「最初の人」を捕まえる `:first-child`

想像してみてほしい。キミがカフェのレジに並んでいるところを。
最初にお店に入ったお客さんは、一番先頭にいるよね。この「行列の先頭」を指定するのが `:first-child` だ。

CSSにおける `:first-child` は、「親要素の中にある、一番最初の子供」を狙い撃ちにする。

/ リストの最初だけ、ちょっと特別に目立たせたい! /
ul li:first-child {
font-weight: bold; / 太字にするよ /
color: #ff6b6b; / ちょっと情熱的な赤で /
border-top: 2px solid #ccc; / 上に線を入れて区切りを明確に /
}

ここが落とし穴!:
初心者が一番つまずくポイントは「誰の子供か?」を勘違いすること。`ul li:first-child` と書いたら、「`ul`の中にある、一番最初の`li`」という意味だ。もし`ul`の直後に別のタグ(例えば`h2`など)が置いてあると、`li`は二番目扱いになってしまい、この魔法は発動しない。
「親の直下、一番最初っ子」だけを指す。これだけ覚えておけば大丈夫だよ。

—

2. 「最後の人」を締めくくる `:last-child`

今度は逆に、列の最後尾を見てみよう。お店を出る時、一番最後に並んでいた人だね。
これを使う場面は、特に「区切り線」のデザインで重宝するんだ。

リストの間には線を引くけれど、一番最後の人にまで線を引くと、なんだか少し野暮ったいよね。そんなとき、 `:last-child` が助けてくれる。

li {
border-bottom: 1px solid #eee; / 基本はみんなの下に線を引く /
}

/ 最後の要素だけ、線を取っ払ってスッキリさせる /
li:last-child {
border-bottom: none;
}

これだけで、リストがまるでプロの仕立てた美しいデザインに早変わりするんだ。便利だと思わない?

—

3. 「たった一人の子」を愛でる `:only-child`

最後に、ちょっと寂しいけれどユニークな `:only-child` の話。
これは、「兄弟が一人もいない、その親にとってたった一人の子供」を指すんだ。

例えば、ブログのサイドバーに広告枠があるとする。広告が1つしかないときは大きく表示させたいけれど、複数あるときは小さく並べたい……そんな時に真価を発揮するよ。

.ad-container img {
width: 50%; / 普段は半分サイズ /
}

/ もし広告が1枚しかなかったら、思いっきり大きく見せちゃおう! /
.ad-container img:only-child {
width: 100%;
}

「兄弟がいない」という孤独な状況を逆に利用して、レイアウトを最適化する。CSSって、こういう「気の利いた対応」ができるところが本当に面白いんだよね。

—

最後に:完璧を求めなくていい

ここまで読んでくれてありがとう。
どうかな? 少しだけCSSの擬似クラスが、身近な存在に感じられたんじゃないかな。

CSSを学ぶ上で一番大切なのは、完璧に暗記することじゃない。「こうすれば動くかな?」とエディタで遊んでみることだ。もし思い通りに動かなくても、それは失敗じゃなくて、「そのセレクタの仕組みをより深く理解するためのヒント」に過ぎないんだ。

キミが書いたコードが、いつか誰かの心を動かす素晴らしいWebサイトの一部になることを、現場の端っこから応援しているよ。

またいつでも、迷ったらここへ戻っておいで。次はもっと深い、アーキテクチャの話でもしようか。

コメント

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