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
+
-
an
a
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 h1
ya p
, kullanmak gerekecektir :nth-of-type()
yerine :nth-child()
sadece saymak sağlamak için div
elemanlar:
<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()
. n
Değ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-child
Sözde sınıf için doğru argümana ihtiyacınız var .
Argüman şeklinde olmalıdır an + b
her bir maç için inci b başlayarak çocuk.
Hem a
ve b
opsiyonel tam sayılardır ve her ikisi de sıfır veya negatif olabilir.
a
sıfır o zaman hiçbir yoktur "Her bir inci çocuk" tümcesi.a
Negatif ise , eşleme başlangıçtan itibaren geriye doğru yapılır b
.b
o zaman sıfır veya negatif olduğu olumlu kullanarak eşdeğer ifadeyi yazmak mümkündür b
örneğin 4n+0
aynıdır 4n+4
. Benzer şekilde 4n-1
aynı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>