これは、非回答ほどの回答ではありません。つまり、上記の投票数の多い回答の1つが実際に間違っている理由を示す例です。
その答えは良さそうだと思いました。実際、それは私が探していたものを与えてくれました。:nth-of-type
それは、私の状況ではうまくいきました。(だから、@Bdwey、ありがとう。)
私は最初に @BoltClock のコメント (答えが本質的に間違っていると言っています) を読み、ユースケースを確認したのでそれを却下しましたが、うまくいきました。その後、@BoltClock の評判が 300,000+(!) あり、CSS の第一人者であると主張するプロフィールがあることに気付きました。うーん、もう少し近づいて見てみようかなと思いました。
次のようになります: div.myclass:nth-of-type(2)
「div.myclass の 2 番目のインスタンス」を意味しません。むしろ、「div の 2 番目のインスタンスであり、'myclass' クラスも必要です」という意味です。インスタンスdiv
間に介在する がある場合、これは重要な違いです。div.myclass
これを理解するのに時間がかかりました。h1
そこで、他の人がもっと早く理解できるように、文章で説明するよりも概念をより明確に示してh2
いるh3
とh4
思われる例を書きましたdiv
。それらのいくつかにクラスを配置A
し、それらを 3 つにグループ化し、1 番目、2 番目、3 番目のインスタンスを青、オレンジ、緑にh?.A:nth-of-type(?)
. (しかし、注意深く読んでいるなら、「何の 1 番目、2 番目、3 番目のインスタンスか?」と尋ねているはずです)。また、いくつかのグループに、類似していない (つまり、異なるh
レベルの) または類似の (つまり、同じh
レベルの) 分類されていない要素を挿入しました。
特に、3 の最後のグループ化に注意してください。ここでは、分類されていないh3
要素が最初の要素と 2 番目の要素の間に挿入されh3.A
ます。この場合、2 番目の色 (つまりオレンジ色) は表示されず、3 番目の色 (つまり緑) が の 2 番目のインスタンスに表示されますh3.A
。これは、n
inがs ではなく sh3.A:nth-of-type(n)
をカウントしていることを示しています。h3
h3.A
それが役立つことを願っています。ありがとう、@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>