4

反対票が殺到することを期待していますが、それでも、皆さんがどう思うか知りたいと思います。

あなたが持っている場合、

<div>
    <p>Paragraph1</p>
    <p>Paragraph2</p>
</div>
<div>
</div>

文字通り、の最初の子ノードであるため、div:first-childを選択することを期待しますが 、ご存知のように、htmlの最初のノードを選択します。これを単純に呼び出す方が理にかなっているのではないでしょうか?<p>Paragraph1</p><p>Paragraph1</p>divdiv:first:first-sibling

4

4 に答える 4

3

jQueryには拡張セレクターがあります::first、問題:firstは、最初の一致後に要素の検索が停止することです。これとは異なり:first-child、ここでの例は、なぜ:first適切な名前ではないのかを示しています。

于 2013-03-07T22:32:25.407 に答える
2

Mozillaのリファレンスドキュメントによると(私の強調):

CSS疑似クラスは、選択 する要素の特別な状態を指定するセレクターに追加されるキーワードです。

疑似クラスは、既存のセレクターの修飾子です。したがって、結果は、既存のセレクターによって一致するもののサブセットである必要があります。したがって、 。div:first-child以外のものを返すことはできませんdiv

于 2013-03-07T22:35:58.827 に答える
0

:first-childは、それがその親の最初の子であることを意味します。:firstは十分に具体的ではなく、:first-sibling ....どちらも非常にあいまいであるため、first-childと同等すぎるように思われます。

于 2013-03-07T22:32:09.223 に答える
0

そして、なぜ:first最初に何に関連していないのですか?ページ全体の最初のdiv?このセクションだけですか?:first-childコンテキストを提供します。ドキュメント、div、ulなどです。なんでもいい。

div > :first-child「文字通りに解釈された」と参照するのは、実際には、div内の要素を選択しようとしているためと思われます。

div:first文字通りとると、最初に遭遇するdivを意味します。したがって、それは常にページの最初のdivになります。

div:first-child文字通りとられるとは、「親の最初の子であるdiv」を意味します。psuedoクラスは、それらが適用される要素を記述していることを覚えておく必要があります。

于 2013-03-07T22:41:10.667 に答える