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-type
was 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 div
zwischen Ihren div.myclass
Instanzen 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
, h3
und h4
Elemente im Wesentlichen sein div
s. Ich habe A
einigen 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 h
Level) oder ähnliches (dh dasselbe h
Level) nicht klassifiziertes Element in einige der Gruppen eingefügt.
Beachten Sie insbesondere die letzte Gruppierung von 3. Hier wird ein nicht klassifiziertes h3
Element 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 n
In h3.A:nth-of-type(n)
das h3
s zählt, nicht das h3.A
s.
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>