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

こんにちは!フロントエンドの現場で日々CSSと格闘しているチーフアーキテクトです。

CSSを学び始めたばかりの頃、「あれもこれもやりたい!」と意気込んでコードを書いていると、どうしても「この要素、一つしかない時だけデザインを変えたいのに、全部に同じスタイルが当たっちゃう!」という壁にぶつかりませんか?

そんな時、CSSには魔法のようなセレクタが用意されています。それが今回紹介する `:only-child`(オンリーチャイルド) です。

名前からして「一人っ子」という感じがしますよね。まさにその通り。親要素の中に、「ポツンと一人だけ存在している時」にだけ、特定のスタイルを適用してくれる頼もしいやつなんです。

—

:only-child は「貸切状態」を見つける名人

イメージしてみてください。あなたは大きなホテルの広間(親要素)を管理する支配人です。

  • お客さんがたくさん並んでいる時(子要素が複数ある時)は、みんな平等に接客します。
  • でも、たった一人だけで貸切状態のお客さんが来たら、「せっかくだし、特別なおもてなしをしようかな?」と思いますよね。

`:only-child` は、まさにその「貸切状態」を瞬時に察知するセンサーのようなものなんです。

どんな時に役に立つの?

例えば、ニュースリストを作っているとします。

  • お知らせが3つある時は、リスト形式で整然と並べたい。
  • でも、お知らせが「1つだけ」しかない時は、リストの形にするよりも、ドーンと大きく目立たせたい。

こんな時、わざわざJavaScriptで個数を数えなくても、CSSだけで「一つだけなら特別仕様にする」という切り替えができるんです。

—

実際にコードを書いてみよう

まずは、このコードをエディタに貼り付けて、ブラウザで眺めてみてください。

/ 普段のリストのスタイル /
.item {
padding: 10px;
background-color: #f0f0f0;
border-bottom: 1px solid #ccc;
}

/
ここが魔法のポイント!
もし「item」が親要素の中で唯一の子供なら、
背景をパッと明るい黄色に変えて、文字を大きくしちゃいます。
/
.item:only-child {
background-color: #fffacd; / レモンシフォン色 /
font-weight: bold;
font-size: 1.2rem;
border: 2px solid #ffd700; / ゴールドの枠線で強調 /
}

大事なお知らせ:明日は定休日です

お知らせ1
お知らせ2

—

つまずきやすいポイント:ここだけ注意!

初心者の方がよく迷うのが、「親要素の中に、別のタグが混ざっている場合」です。

例えば、`

` の中に `

` があって、その下に `

` が1つだけある場合。この `

` は、「`

` にとっては唯一の子供」ですが、親から見れば「`

` と `

` の2つがいる」状態ですよね。

`:only-child` は、「その種類の要素が一つだけ」ではなく、「親にとって、自分以外の兄弟が一切存在しない状態」を指します。

もし「テキストが一つだけなら」という条件にしたい時は、少し工夫が必要になることもありますが、まずは「兄弟が誰もいない、孤独な一点豪華主義!」というシンプルに覚えるところからスタートしましょう。

—

最後に:CSSは「あなたの味方」です

CSSの疑似クラスは種類が多くて、「全部覚えないといけないの?」と不安になるかもしれません。でも、大丈夫ですよ。

今日覚えた `:only-child` も、最初は「へぇ、そんな便利なものがあるんだ」くらいの感覚で十分です。いざという時に「あ、そういえば一人っ子を狙い撃ちするやつがあったな」と思い出して、この記事を見返してくれたら、それが一番の近道です。

Web制作は、こうした小さな「気づき」の積み重ねです。一つひとつのセレクタと仲良くなっていくと、コードを書くのがどんどん楽しくなりますよ。

また困ったことがあったら、いつでも聞きに来てくださいね。あなたのコードが、世界で一番美しくなりますように!

コメント

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