html
1<body> 2 3<style> 4.container *:first-child { color: blue; } 5.container > *:first-child { color: red; } 6</style> 7 8<div class="container"> 9 <p>paragraph 1</p> 10 <p>paragraph 2</p> 11 <p>paragraph 3</p> 12 13 <ul> 14 <li>list-item 1</li> 15 <li>list-item 2</li> 16 <li>list-item 3</li> 17 </ul> 18 19 <table> 20 <tr> 21 <th>Fruits</th> 22 <th>Vegetables</th> 23 </tr> 24 <tr> 25 <td>Apple</td> 26 <td>Potato</td> 27 </tr> 28 <tr> 29 <td>Orange</td> 30 <td>Carrot</td> 31 </tr> 32 </table> 33 34</div> 35</body>
.container > *:first-child { color: red; }
では一番上の paragrah 1 のみがマッチします。これは「.container 直下のすべての要素のうち、一番最初の要素」だと理解しています。
ただ、.container *:first-child { color: blue; }
で画像のようにマッチする理由がわかりません。僕の予想では「.container 内の(子孫含む)すべての要素のうち、一番最初の要素」にマッチする、つまり .container > *:first-child { color: red; }
で赤くなっているのと同じ部分だけがマッチするのだと思ったのですが。
質問
.container *:first-child
はどのようなマッチの挙動になっているのでしょうか?
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2020/06/25 12:50 編集
2020/06/25 12:59
退会済みユーザー
2020/06/25 13:07