CSSの世界へようこそ。フロントエンドの迷宮を歩き続けてきた私から、今日ひとつ、とても素敵な魔法をお教えしますね。
Webサイトを作っていると、こんな場面に出くわしたことはありませんか?
「リストの最初と最後だけ、ちょっと見た目を変えたいな。でも、ひとつひとつクラス名を付けるのは面倒だし、修正が入るたびに書き換えるのも大変……」
そんなとき、CSSには「最初の子」と「最後の子」を自動で見つけてくれる頼れる相棒がいるんです。それが `:first-child` と `:last-child` です。
—
1. 「お行儀のいい行列」を想像してみて
まずは簡単な例え話をしましょう。
あなたが人気カフェの行列に並んでいるとします。
- :first-child(最初の子): 行列の先頭にいる人。お店に入る一番最初の人ですね。
- :last-child(最後の子): 行列の最後尾にいる人。次に並ぶ人がいない、締めくくりの人です。
CSSの `:first-child` と `:last-child` は、ブラウザに対して「この親要素の中で、一番最初(または最後)にいる子要素を捕まえて!」と命令する合図のようなものです。
これを使えば、「リストの先頭にだけ線を引く」「最後だけ余白を消す」なんて作業が、魔法のように一瞬で終わります。
—
2. 実際に書いてみよう
たとえば、メニューリストを作っているとします。リストの上下に境界線(ボーダー)を引きたいけれど、全部の要素に線を引くと線が重なって太くなってしまいますよね。そんなとき、この疑似クラスが輝きます。
.menu-list li {
/ まず、すべてのリストに上下の線を引いてみます /
border-bottom: 1px solid #ccc;
padding: 10px;
}
/ 最後の要素だけ、下の線を消してスッキリさせたい! /
.menu-list li:last-child {
border-bottom: none; / 最後の「カフェラテ」の下の線だけ消す /
}
どうでしょう? `
—
3. 初学者がつまずきやすい「落とし穴」
ここで少しだけ、現場でよくある失敗談を共有させてください。初心者の頃、誰もが一度は「あれ?効かないぞ?」と悩むポイントがあります。
「親要素」の中身をチェックしよう
`:first-child` は、「親要素の中の、一番最初にある要素」に反応します。
もし、`
- ` の中にいきなり `
- ` ではなく、別のタグ(例えば見出しの `
` など)が入っていたらどうなるでしょう? おすすめメニュー
- コーヒー
- 紅茶
この場合、`li:first-child` と書いても、「一番最初の『子』は `
` だから、` ` は一番最初じゃないよ」とブラウザに無視されてしまいます。 「一番最初(最後)に何がいるか?」を意識する癖をつけると、CSSはグッと扱いやすくなります。もし動かなかったら、HTMLの構造をもう一度だけ覗いてみてください。「あ、変なタグが混ざってた!」という発見があるはずです。 — 最後に:CSSは「ルール」を楽しむもの
CSSの記述を減らし、メンテナンス性を高める。これはプロが現場で常に考えていることです。今回紹介した `:first-child` や `:last-child` を使いこなすことは、その第一歩です。
最初は思い通りにならなくて当たり前。ブラウザとの対話を楽しんでください。「どうして君はそう動いたの?」とコードを眺めているうちに、CSSという言語が少しずつ、あなたの味方になってくれるはずです。
次は、これらを組み合わせて「一行おきに色を変える」なんて技にも挑戦してみましょうか。でも、まずは今日学んだ「行列の先頭と最後」の魔法を、ぜひご自身のコードで試してみてくださいね。
応援していますよ!

コメント