NOT: Bu çözüm, istediğiniz gibi ana öğeyi değil, belirli uzunluktaki kümelerin alt öğelerini döndürür. Umarım, hala faydalıdır.
Andre Luis bir yöntem buldu: http://lea.verou.me/2011/01/styling-children-based-on-their-number-with-css3/ Ne yazık ki, sadece IE9 ve üzeri sürümlerde çalışıyor.
Temel olarak, nth-child () öğesini bir öğenin konumu ile ilgilenen diğer sözde sınıflarla birleştirirsiniz. Bu yaklaşım, belirli uzunluklara sahip eleman setlerinden elemanlar belirlemenizi sağlar .
Örneğin :nth-child(1):nth-last-child(3)
, bir kümedeki ilk öğeyle eşleşirken, kümenin sonundaki 3. öğedir. Bu iki şey yapar: setin sadece üç unsuru olduğunu ve bu üç unsurdan birincisine sahip olduğumuzu garanti eder. Üç eleman kümesinin ikinci elemanını belirtmek için kullanırız :nth-child(2):nth-last-child(2)
.
Örnek 1 - Sette üç öğe varsa tüm liste öğelerini seçin:
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'dan Örnek 1 Alternatifi :
li:first-child:nth-last-child(3),
li:first-child:nth-last-child(3) ~ li {
width: 33.3333%;
}
Örnek 2 - Üç liste öğesiyle kümenin son öğesini hedefleyin:
li:nth-child(3):last-child {
/* I'm the last of three */
}
Örnek 2 alternatifi:
li:nth-child(3):nth-last-child(1) {
/* I'm the last of three */
}
Örnek 3 - Dört liste öğesiyle kümenin ikinci öğesini hedefleyin:
li:nth-child(2):nth-last-child(3) {
/* I'm the second of four */
}