1

私が次のものを持っているとしましょう..

<div>
    <div>
        <div>
            <div></div>  <<<Select this one..
            <div></div>  <<<Not this one..
            <div></div>  <<<Select this one..
            <div></div>  <<<Select this one..
        </div>
    </div>
</div>

divsクラスやIDを追加せずにこれら3つを選択するにはどうすればよいですか? これは可能ですか?

4

4 に答える 4

6

IE7 をサポートする必要がある場合は、次を使用できます。

div > div > div > div + div + div, 
div > div > div > div:first-child {
    color: orange;
}

http://jsfiddle.net/4TYcb/1/

于 2013-09-13T19:30:36.393 に答える
0

古いIEでも機能するソリューションが必要な場合は、これまでのほとんどの回答で想定されていたものとは少し異なる方法で考える必要があります.

3 番目の子であるすべての DIV をスタイルします。

div > div > div > div {/* styles for all 4 DIVs */}

そして、2番目のものを元に戻します:

div > div > div > div:first-child + div {/* styles only for the second DIV */}

jsFiddleを参照してください

しかし、あなたの質問に対する私のコメントに既に書かれているように、あなたの HTML マークアップは非常に「疑わしい」ものです。

PS: @Adrift の答えとの違いは、2 番目のルールが 2 番目の DIV を選択することです。IMHOこれは、要素を除外するよりも、実際にはより便利です。また、DIV 以外の別の要素が挿入される場合に備えて、「より堅牢」です。

これはあなたが探しているものではないと書いたばかりなので、「あなたが探しているもの」を達成するための別のオプションがあります!

あなたの場合、:nth-of-type()セレクターの代わりにセレクターを使用することもできます:nth-child()-フィドルを参照してください

ご覧のとおり、たくさんのオプションがあります。時間をかけてこれらのさまざまなアプローチをすべて理解し、どれがニーズに最も適しているかを判断できるようにする必要があります。

于 2013-09-14T00:45:46.777 に答える