मूल तत्व में एक या अधिक बाल तत्व हो सकते हैं:
<div class="parent">
<div>Child</div>
<div>Child</div>
<div>Child</div>
<div>Child</div>
</div>
इन बच्चों में, उनमें से केवल एक ही पहला हो सकता है। यह इस से मेल खाता है :first-child
:
<div class="parent">
<div>Child</div> <!-- :first-child -->
<div>Child</div>
<div>Child</div>
<div>Child</div>
</div>
के बीच का अंतर :first-child
और :first-of-type
वह यह है कि :first-of-type
जो HTML में अपने टैग नाम का प्रतिनिधित्व करती है अपने तत्व प्रकार, के पहले तत्व की पूर्ति करेंगे, भले ही उस तत्व माता पिता की पहली संतान नहीं है । अब तक जिन बाल तत्वों को हम देख रहे हैं, वे सभी div
s हैं, लेकिन मेरे साथ सहन करते हैं, मैं इसे थोड़ा सा प्राप्त करूँगा।
अभी के लिए, काफिला भी सही है: कोई :first-child
भी :first-of-type
आवश्यकता के अनुसार है। चूँकि यहाँ पहला बच्चा भी पहला है div
, इसलिए यह छद्म वर्गों दोनों से मेल खाएगा , साथ ही साथ चयनकर्ता भी div
:
<div class="parent">
<div>Child</div> <!-- div:first-child, div:first-of-type -->
<div>Child</div>
<div>Child</div>
<div>Child</div>
</div>
अब, यदि आप पहले बच्चे के प्रकार div
को किसी और चीज़ से बदलते हैं , जैसे h1
, यह अभी भी पहला बच्चा होगा, लेकिन यह अब div
स्पष्ट रूप से पहला नहीं होगा ; इसके बजाय, यह पहला (और केवल) बन जाता है h1
। यदि div
इस माता-पिता के भीतर इस पहले बच्चे के बाद कोई अन्य तत्व हैं, div
तो उन तत्वों में से पहला मैच करेगा div:first-of-type
। दिए गए उदाहरण में, div
पहला बच्चा पहले बच्चे के बदले जाने के बाद दूसरा बच्चा बन जाता है h1
:
<div class="parent">
<h1>Child</h1> <!-- h1:first-child, h1:first-of-type -->
<div>Child</div> <!-- div:nth-child(2), div:first-of-type -->
<div>Child</div>
<div>Child</div>
</div>
ध्यान दें कि :first-child
इसके बराबर है :nth-child(1)
।
इसका अर्थ यह भी है कि किसी भी तत्व :first-child
में एक समय में केवल एक ही बाल तत्व का मिलान हो सकता है, लेकिन उसके पास :first-of-type
छद्म वर्ग से मेल खाने वाले जितने बच्चे होंगे, उतने ही बच्चे होंगे । हमारे उदाहरण में, चयनकर्ता .parent > :first-of-type
(एक छद्म *
योग्यता के साथ :first-of-type
छद्म) दो तत्वों से मेल खाएगा , न कि केवल एक:
<div class="parent">
<h1>Child</h1> <!-- .parent > :first-of-type -->
<div>Child</div> <!-- .parent > :first-of-type -->
<div>Child</div>
<div>Child</div>
</div>
एक ही के लिए सच है :last-child
और :last-of-type
: किसी :last-child
भी आवश्यकता के द्वारा भी है :last-of-type
, बिल्कुल कोई अन्य तत्व अपने माता पिता के भीतर का पालन करता है। फिर भी, क्योंकि अंतिम div
भी अंतिम बच्चा है, h1
अपने प्रकार का अंतिम होने के बावजूद अंतिम बच्चा नहीं हो सकता है।
:nth-child()
और :nth-of-type()
सिद्धांत में समान रूप से कार्य करते हैं जब एक मनमाना पूर्णांक तर्क के साथ उपयोग किया जाता है (जैसा :nth-child(1)
कि ऊपर उल्लेख किया गया है), लेकिन जहां वे भिन्न होते हैं वे संभावित तत्वों की संख्या से मेल खाते हैं :nth-of-type()
। यह विस्तार से कवर किया गया है कि p: nth-child (2) और p: nth-of-type (2) में क्या अंतर है?