3

css3 の:not()セレクターを使用して、特定のクラスを祖先として持つ親要素を持たない特定の要素を選択しようとしています。

マークアップは簡単です:

<div><strong><em>Please select me!</em></strong></div>

<div><strong><p><em>Please don't select me!</em></p></strong></div>

<div><p><em>Please don't select me!</em></p></div>

そして、これは私が使用しているセレクターです: div *:not(p) em.

そしてフィドル:http://jsfiddle.net/cwxzH/

divのすべての子を除外している場合、2 番目が選択されるdivのはなぜparagraphsですか? これを防ぐ方法はありますか?

これまでのところ、IE9 と FF13 でしかテストしていません。

4

2 に答える 2

2

div *div ie のすべての子孫を選択し、strong p em次に を:not(p)削除するので、 andpが残ります。現在はのみが子孫 (the )を持ち、2 番目に選択されます。strongememstrongemememdiv

于 2012-07-02T01:43:20.320 に答える
0

多分これはあなたが探しているものですか?em段落の直接の子ではないすべての要素を選択します。

div :not(p)>em

http://jsfiddle.net/cwxzH/1/

于 2012-07-02T01:52:28.553 に答える