注:このソリューションは、特定の長さのセットの子を返しますが、要求した親要素は返しません。うまくいけば、それはまだ便利です。
Andre Luisがメソッドを考え出しました:http : //lea.verou.me/2011/01/styling-children-based-on-their-number-with-css3/残念ながら、これはIE9以降でのみ機能します。
基本的に、:nth-child()を、要素の位置を処理する他の疑似クラスと組み合わせます。このアプローチでは、特定の長さの要素のセットから要素を指定できます。
たとえば:nth-child(1):nth-last-child(3)
、セットの最初の要素と一致し、セットの最後から3番目の要素でもあります。これは2つのことを行います。セットに3つの要素しかないことと、3つのうちの最初のものがあることを保証します。3つの要素セットの2番目の要素を指定するには、を使用します:nth-child(2):nth-last-child(2)
。
例1-セットに3つの要素がある場合、すべてのリスト要素を選択します。
li:nth-child(1):nth-last-child(3),
li:nth-child(2):nth-last-child(2),
li:nth-child(3):nth-last-child(1) {
width: 33.3333%;
}
Lea Verouの例1の代替:
li:first-child:nth-last-child(3),
li:first-child:nth-last-child(3) ~ li {
width: 33.3333%;
}
例2-3つのリスト要素を持つセットの最後の要素をターゲットにします。
li:nth-child(3):last-child {
/* I'm the last of three */
}
例2の代替:
li:nth-child(3):nth-last-child(1) {
/* I'm the last of three */
}
例3-4つのリスト要素を持つセットの2番目の要素をターゲットにします。
li:nth-child(2):nth-last-child(3) {
/* I'm the second of four */
}