Diyelim ki, bir dizi öğedeki her dördüncü öğeyi seçmek mümkün müdür?
Örn: 16 <div>elementim var ... Gibi bir şey yazabilirim.
div:nth-child(4),
div:nth-child(8),
div:nth-child(12),
div:nth-child(16)
Bunu yapmanın daha iyi bir yolu var mı?
Diyelim ki, bir dizi öğedeki her dördüncü öğeyi seçmek mümkün müdür?
Örn: 16 <div>elementim var ... Gibi bir şey yazabilirim.
div:nth-child(4),
div:nth-child(8),
div:nth-child(12),
div:nth-child(16)
Bunu yapmanın daha iyi bir yolu var mı?
Yanıtlar:
Adından da anlaşılacağı gibi, sabit sayılara ek olarak değişkeni kullanarak aritmetik bir ifade oluşturmanıza izin verir . Sen (ek gerçekleştirebilir ), çıkarma ( ) ve katsayı çarpma ( pozitif sayılar, negatif sayılar ve sıfır dahil olmak üzere bir tam sayıdır).:nth-child()n+-ana
Yukarıdaki seçici listesini nasıl yeniden yazacağınız aşağıda açıklanmıştır:
div:nth-child(4n)
Bu aritmetik ifadelerin nasıl çalıştığına dair bir açıklama için, bu soruya verilen cevaba ve spesifikasyona bakın .
Bu yanıtın, aynı üst öğedeki tüm alt öğelerin aynı öğe türünde olduğunu varsaydığını unutmayın div. Aşağıdakiler gibi farklı türde başka öğeler varsa h1ya p, kullanmak gerekecektir :nth-of-type()yerine :nth-child()sadece saymak sağlamak için divelemanlar:
<body>
<h1></h1>
<div>1</div> <div>2</div>
<div>3</div> <div>4</div>
<h2></h2>
<div>5</div> <div>6</div>
<div>7</div> <div>8</div>
<h2></h2>
<div>9</div> <div>10</div>
<div>11</div> <div>12</div>
<h2></h2>
<div>13</div> <div>14</div>
<div>15</div> <div>16</div>
</body>
Rasgele bir seçiciyle eşleşen n'inci çocuğu aradığınız diğer her şey (sınıflar, öznitelikler veya bunların herhangi bir kombinasyonu) için bunu saf bir CSS seçicisiyle yapamazsınız. Bu soruya cevabımı gör .
Bu arada, 4n ve 4n + 4 arasında çok fazla fark yok :nth-child(). nDeğişkeni kullanırsanız, 0'da saymaya başlar. Her seçicinin uyuşacağı şey budur:
:nth-child(4n)
4(0) = 0
4(1) = 4
4(2) = 8
4(3) = 12
4(4) = 16
...
:nth-child(4n+4)
4(0) + 4 = 0 + 4 = 4
4(1) + 4 = 4 + 4 = 8
4(2) + 4 = 8 + 4 = 12
4(3) + 4 = 12 + 4 = 16
4(4) + 4 = 16 + 4 = 20
...
Gördüğünüz gibi, her iki seçici de yukarıdakiyle aynı öğelerle eşleşecek. Bu durumda, fark yoktur.
tr td:nth-child(4). Köşeli parantez içindeki n eksikliğine dikkat edin
div:nth-child(4n+4)
nth-childSözde sınıf için doğru argümana ihtiyacınız var .
Argüman şeklinde olmalıdır an + bher bir maç için inci b başlayarak çocuk.
Hem ave bopsiyonel tam sayılardır ve her ikisi de sıfır veya negatif olabilir.
asıfır o zaman hiçbir yoktur "Her bir inci çocuk" tümcesi.aNegatif ise , eşleme başlangıçtan itibaren geriye doğru yapılır b.bo zaman sıfır veya negatif olduğu olumlu kullanarak eşdeğer ifadeyi yazmak mümkündür börneğin 4n+0aynıdır 4n+4. Benzer şekilde 4n-1aynıdır 4n+3.Örnekler:
li:nth-child(4n) {
background: yellow;
}
<ol>
<li>Item</li>
<li>Item</li>
<li>Item</li>
<li>Item</li>
<li>Item</li>
<li>Item</li>
<li>Item</li>
<li>Item</li>
<li>Item</li>
</ol>