เป็นไปได้ที่จะเลือกพูดทุกองค์ประกอบที่สี่ในชุดองค์ประกอบหรือไม่?
เช่นฉันมี 16 <div>
องค์ประกอบ ... ฉันสามารถเขียนบางอย่างเช่น
div:nth-child(4),
div:nth-child(8),
div:nth-child(12),
div:nth-child(16)
มีวิธีที่ดีกว่าในการทำเช่นนี้?
เป็นไปได้ที่จะเลือกพูดทุกองค์ประกอบที่สี่ในชุดองค์ประกอบหรือไม่?
เช่นฉันมี 16 <div>
องค์ประกอบ ... ฉันสามารถเขียนบางอย่างเช่น
div:nth-child(4),
div:nth-child(8),
div:nth-child(12),
div:nth-child(16)
มีวิธีที่ดีกว่าในการทำเช่นนี้?
คำตอบ:
ตามที่ชื่อบอกไว้อนุญาตให้คุณสร้างนิพจน์ทางคณิตศาสตร์โดยใช้ตัวแปรเพิ่มเติมจากค่าคงที่ คุณสามารถทำการบวก ( ) การลบ ( ) และการคูณสัมประสิทธิ์ ( โดยที่เป็นจำนวนเต็มรวมถึงจำนวนบวกจำนวนลบและศูนย์):nth-child()
n
+
-
an
a
นี่คือวิธีที่คุณจะเขียนรายการตัวเลือกด้านบนใหม่:
div:nth-child(4n)
สำหรับคำอธิบายเกี่ยวกับวิธีการแสดงออกทางคณิตศาสตร์เหล่านี้ทำงานให้ดูคำตอบของฉันคำถามนี้เช่นเดียวกับสเป็ค
div
โปรดทราบว่าคำตอบนี้อนุมานว่าทั้งหมดขององค์ประกอบของเด็กภายในองค์ประกอบหลักเดียวกันเป็นประเภทองค์ประกอบเดียวกัน หากคุณมีองค์ประกอบอื่น ๆ ประเภทต่าง ๆ เช่นh1
หรือp
คุณจะต้องใช้:nth-of-type()
แทน:nth-child()
เพื่อให้แน่ใจว่าคุณนับdiv
องค์ประกอบเท่านั้น:
<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>
สำหรับทุกอย่างอื่น (คลาส, คุณสมบัติ, หรือการรวมกันของสิ่งเหล่านี้) ที่คุณกำลังมองหาเด็กที่ n ที่ตรงกับตัวเลือกโดยพลการคุณจะไม่สามารถทำได้ด้วยตัวเลือก CSS ที่แท้จริง ดูคำตอบของฉันสำหรับคำถามนี้
โดยวิธีการที่มีไม่มากของความแตกต่างระหว่าง 4n และ 4n + 4 :nth-child()
เกี่ยวกับการ หากคุณใช้n
ตัวแปรมันจะเริ่มนับที่ 0 นี่คือสิ่งที่แต่ละตัวเลือกจะจับคู่:
: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
...
อย่างที่คุณเห็นตัวเลือกทั้งสองจะจับคู่องค์ประกอบเดียวกันกับด้านบน ในกรณีนี้ไม่มีความแตกต่าง
tr td:nth-child(4)
ฉันคิดว่าฉันจะเพิ่มถ้าคุณกำลังทำอะไรบางอย่างเช่นเฉพาะที่สี่แล้วคุณจะต้องมีอะไรบางอย่างเช่น สังเกตการขาด n ในวงเล็บ
div:nth-child(4n+4)
ลองสิ่งนี้
div:nth-child(4n+4)
คุณต้องการอาร์กิวเมนต์ที่ถูกต้องสำหรับnth-child
คลาสหลอก
อาร์กิวเมนต์ที่ควรจะเป็นในรูปแบบของan + b
เพื่อให้ตรงกับทุกวันเด็กที่เริ่มต้นจากข
ทั้งสองa
และb
เป็นจำนวนเต็มเสริมและทั้งคู่อาจเป็นศูนย์หรือลบ
a
เป็นศูนย์แล้วไม่มี"ทุกวันเด็ก"ประโยคa
b
b
เป็นศูนย์หรือเชิงลบแล้วมันเป็นไปได้ที่จะเขียนแสดงออกเทียบเท่าใช้ในเชิงบวกb
เช่นเป็นเช่นเดียวกับ4n+0
4n+4
ในทำนองเดียวกันเป็นเช่นเดียวกับ4n-1
4n+3
ตัวอย่าง:
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>