0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

[CSS] 孫セレクタってないの…?

Last updated at Posted at 2021-07-05

CSSど初心者なのですが、孫セレクタってないのかな…と無意味に悩んだのでメモっておきます。

「CSS 孫セレクタ」「CSS セレクタ 孫」的な検索をかけると、サジェストにワードが出るのに検索結果にそれっぽい内容の記事が一切ヒットしない!
子孫セレクタについてのページばっかりヒットします。
この記事がヒットするようになったらいいですね。

孫セレクタ=子セレクタ+全称セレクタ+子セレクタ

全称セレクタ「*」を子セレクタふたつの間に挟むことで、孫セレクタ…ではないですが同じ働きをさせるセレクタを書くことができます。

html
<html>
  <head></head>
  <body>
    親要素
    <div>
      子要素
      <div class="youso">孫要素</div>
      <div><div class="youso">関係ない要素</div></div>
    </div>
  </body>
</html>
css
/* ふつうの子セレクタ */
body > div {
  background-color: orange;
}

/* 孫セレクタ…と同じ意味のセレクタ */
body > * > div.youso {
  background-color: red;
}

以下のスクショのようになります。
ちょうど孫にだけスタイルが適用されていて狙い通り!
screenshot.png

まとめ

初心者はとんでもない発想をしがち

追記:>は正確にはセレクタではない

">"は「子結合子」、" "は「子孫結合子」と呼びます。
">"" " 単体では何かをセレクトできる訳ではないので、セレクタではありません。
(そんな細かいところまでわからない時期に書いた記事なので…)

今回の場合、「孫結合子」って書くのが適切なのかも…?

とはいえ、セレクタって書いた方がわかりやすいので記事はこのままにしておきます。
初心者向けの記事ですし、初心者っぽいタイトルのままの方が目につきやすそう。

0
0
5

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?