4

正確に 5 人いる場合は、5 人全員の子が必要です (4 人または 6 人いる場合は、どの子も選択しないでください)。

説明するには: http://jsfiddle.net/rudiedirkx/339H6/3/show/

非常に簡単に1つある場合、すべての要素を選択できます。

:first-child:last-child

最初の 5 つの要素と最後の 5 つの要素を選択できます。

:nth-child(-n+5):nth-last-child(-n+5)

(デモでは赤) どちらも私が望んでいることはしませんが、ポイントを示しています: 1 つのセレクターと複数の要素です。

5 つのセレクターを持つ 5 つの子がある場合は、すべての子を選択できます。

li:nth-child(1):nth-last-child(5),
li:nth-child(2):nth-last-child(4),
li:nth-child(3):nth-last-child(3),
li:nth-child(4):nth-last-child(2),
li:nth-child(5):nth-last-child(1)

(フィドルの黄色)しかし、それは恐ろしいことです。私も4が好きだと決めたとき、それは二重に恐ろしいです:正確に4つまたは5つの要素がある場合は、それらをすべて選択してください. これには、さらに 4 つのセレクターが必要です。

私が見逃しているこれを行う適切な方法はありますか?順調に進んでいるように感じ:nth-child(-n+5):nth-last-child(-n+5)ますが、それでは範囲が広すぎます。(フィドルの緑。)

4

1 に答える 1

7

最初の子が最後の 5 番目の子でもあると判断した後、一般的な兄弟コンビネータを使用して残りの要素を選択できます。

li:first-child:nth-last-child(5), 
li:first-child:nth-last-child(5) ~ li

残念ながら、セレクターを少なくとも 1 回繰り返す必要があります。1 つは最初の子に一致する必要があり、次に兄弟コンビネーターを使用して残りの子に一致する必要があるからです。しかし、あと 4 回繰り返すよりは間違いなく勝っています。

于 2013-04-30T13:40:07.443 に答える