【CSS】 「子要素」の数によって「レイアウト」「色」などを変える方法

この記事は約2分で読めます。
サーバー等の運営維持費を得るため記事内に自動表示される広告が含まれています

コーディングのイメージ

こんにちは、さち です。

今回は、子要素の数によって適用する「レイアウト」「」などの CSS変更する方法について書いていきます。

スポンサーリンク

実装方法

サンプルソース

HTML でサイコロを作成してみました。サイコロの目は <b> 要素で作っています。

<div class="dice one">
  <b></b>
</div>

<div class="dice two">
  <b></b> <b></b>
</div>

<div class="dice three">
  <b></b> <b></b> <b></b>
</div>

<div class="dice four">
  <b></b> <b></b> <b></b> <b></b>
</div>

<div class="dice five">
  <b></b> <b></b> <b></b> <b></b> <b></b>
</div>

<div class="dice six">
  <b></b> <b></b> <b></b> <b></b> <b></b> <b></b>
</div>

ここで、目の数が4以上のサイコロにだけ適用する「CSS」を考えてみましょう

例えば、「背景色」を変える CSS はこんな感じになります。

.dice:has( :nth-child(4) ) {
  background: gold;
}

.dice:has( :nth-child(4) ) は、4個目の「子要素(今回は <b> 要素) 」を持っている .dice 要素という意味です。

つまり、子要素である <b> 要素を4個以上持っている .dice 要素だけ、「背景色」が「ゴールド」に変わります。

結果

表示結果

.dice:has( :nth-child(4) )

ちゃんと、目の数が4以上のサイコロだけ「背景色」が変わっていますね。

ちなみに、「」「」ボタンで :nth-child() の数字を変えることもできるので、結果がどう変化するのかも確認してみて下さい。

今回は「背景色」を変えましたが、CSS の内容を変えれば「レイアウト」の変更などにも使えますよ。

コメント

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