6

このHTMLがあると仮定します。

<h1>Header 1</h1>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
<h1>Header 1</h1>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
<h1>Header 1</h1>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>

階層がフラットであることに注意してください。

<p>次に、要素の「中間ペア」を選択してみます。これは可能ですか?どうすればいいのかわからない。

<p>このセレクターは、次の最初のセレクターのみを取得し<h1>ます。

h1:nth-of-type(2) + p

ただし、このセレクターは、正しい<p>要素のペアに加え<p>て、必要なペアの後に表示される次のすべての要素を取得します。

h1:nth-of-type(2) ~ p

出来ますか?

JavaScriptはありません。マークアップは変更されません。一般的なソリューション。任意の数の<h1>sまたは<p>sが許可され、この場合、2番目の数は任意です。

セレクターを使ってこれが可能かもしれないと思って:not()いますが、理解できないようです。「一般的な兄弟」を選択して、必要に応じて除外するようなものです。

4

1 に答える 1

5

一般的な兄弟コンビネータの動作方法により、連続する兄弟であっても、兄弟の選択を特定の範囲またはグループに制限することはできません。セレクターでさえ、:not()ここでは役に立ちません。

適切な要素をターゲットにするには、JavaScriptを使用する必要があります。jQueryの.nextUntil()メソッドがすぐに思い浮かびます。

于 2012-11-11T11:43:56.433 に答える