Dies ist weniger eine Antwort als eine Nichtantwort, dh ein Beispiel, das zeigt, warum eine der oben genannten Antworten tatsächlich falsch ist.
Ich fand diese Antwort gut. Tatsächlich gab es mir das, wonach ich suchte: :nth-of-typewas für meine Situation funktionierte. (Also, danke dafür, @Bdwey.)
Ich las zunächst den Kommentar von @BoltClock (der besagt, dass die Antwort im Wesentlichen falsch ist) und lehnte ihn ab, da ich meinen Anwendungsfall überprüft hatte und er funktionierte. Dann wurde mir klar, dass @BoltClock einen Ruf von über 300.000 (!) Hatte und ein Profil hat, in dem er behauptet, ein CSS-Guru zu sein. Hmm, dachte ich, vielleicht sollte ich etwas genauer hinsehen.
Es stellt sich wie folgt heraus: div.myclass:nth-of-type(2)bedeutet NICHT "die 2. Instanz von div.myclass". Es bedeutet vielmehr "die 2. Instanz von div, und es muss auch die Klasse 'myclass' haben". Dies ist eine wichtige Unterscheidung, wenn divzwischen Ihren div.myclassInstanzen interveniert wird .
Ich brauchte einige Zeit, um mich damit zu beschäftigen. Also, um andere hilft es heraus schneller heraus, habe ich ein Beispiel geschrieben , die ich glaube , das Konzept mehr zeigt deutlich , als eine schriftliche Beschreibung: Ich habe die entführte h1, h2, h3und h4Elemente im Wesentlichen sein divs. Ich habe Aeinigen von ihnen eine Klasse zugewiesen, sie in 3er gruppiert und dann die 1., 2. und 3. Instanz mit blau, orange und grün gefärbt h?.A:nth-of-type(?). (Aber wenn Sie sorgfältig lesen, sollten Sie "die 1., 2. und 3. Instanz von was?" Fragen). Ich habe auch ein unähnliches (dh anderes hLevel) oder ähnliches (dh dasselbe hLevel) nicht klassifiziertes Element in einige der Gruppen eingefügt.
Beachten Sie insbesondere die letzte Gruppierung von 3. Hier wird ein nicht klassifiziertes h3Element zwischen dem ersten und dem zweiten Element eingefügt h3.A. In diesem Fall wird keine 2. Farbe (dh Orange) angezeigt, und die 3. Farbe (dh Grün) wird in der 2. Instanz von angezeigt h3.A. Dies zeigt, dass das nIn h3.A:nth-of-type(n)das h3s zählt, nicht das h3.As.
Hoffe das hilft. Und danke, @BoltClock.
div {
margin-bottom: 2em;
border: red solid 1px;
background-color: lightyellow;
}
h1,
h2,
h3,
h4 {
font-size: 12pt;
margin: 5px;
}
h1.A:nth-of-type(1),
h2.A:nth-of-type(1),
h3.A:nth-of-type(1) {
background-color: cyan;
}
h1.A:nth-of-type(2),
h2.A:nth-of-type(2),
h3.A:nth-of-type(2) {
background-color: orange;
}
h1.A:nth-of-type(3),
h2.A:nth-of-type(3),
h3.A:nth-of-type(3) {
background-color: lightgreen;
}
<div>
<h1 class="A">h1.A #1</h1>
<h1 class="A">h1.A #2</h1>
<h1 class="A">h1.A #3</h1>
</div>
<div>
<h2 class="A">h2.A #1</h2>
<h4>this intervening element is a different type, i.e. h4 not h2</h4>
<h2 class="A">h2.A #2</h2>
<h2 class="A">h2.A #3</h2>
</div>
<div>
<h3 class="A">h3.A #1</h3>
<h3>this intervening element is the same type, i.e. h3, but has no class</h3>
<h3 class="A">h3.A #2</h3>
<h3 class="A">h3.A #3</h3>
</div>