:nth-child
चयनकर्ता एक सूत्र के अनुसार, आप अपने स्रोत आदेश के आधार पर एक या अधिक तत्वों का चयन करने के लिए अनुमति देता है।
/* Select the first list item */ li:nth-child(1) ( ) /* Select the 5th list item */ li:nth-child(5) ( ) /* Select every other list item starting with first */ li:nth-child(odd) ( ) /* Select every 3rd list item starting with first */ li:nth-child(3n - 2) ( ) /* Select every 3rd list item starting with 2nd */ li:nth-child(3n - 1) ( ) /* Select every 3rd child item, as long as it has class "el" */ .el:nth-child(3n) ( )
यह सीएसएस सिलेक्टर्स लेवल 3 कल्पना में "संरचनात्मक छद्म वर्ग" के रूप में परिभाषित किया गया है, जिसका अर्थ है कि इसका उपयोग माता-पिता और सहोदर तत्वों के साथ अपने संबंधों के आधार पर सामग्री को स्टाइल करने के लिए किया जाता है।
मान लीजिए हम एक सीएसएस ग्रिड का निर्माण कर रहे हैं, और हर चौथे ग्रिड मॉड्यूल पर मार्जिन को हटाना चाहते हैं। यहाँ है कि HTML:
One Two Three Four Five
हर चौथे आइटम (जैसे .last
) में एक क्लास जोड़ने के बजाय , हम उपयोग कर सकते हैं :nth-child
:
.module:nth-child(4n) ( margin-right: 0; )
:nth-child
चयनकर्ता एक तर्क लेता है: यह एक एकल पूर्णांक, कीवर्ड हो सकता है even
, odd
या एक सूत्र। यदि एक पूर्णांक निर्दिष्ट किया जाता है तो केवल एक तत्व का चयन किया जाता है-लेकिन कीवर्ड या कोई सूत्र मूल तत्व के सभी बच्चों के माध्यम से पुनरावृति करेगा और मिलान तत्वों का चयन करेगा - जावास्क्रिप्ट सरणी में आइटम नेविगेट करने के समान। कीवर्ड "सम" और "विषम" सीधे हैं (2, 4, 6, आदि या क्रमशः 1, 3, 5)। सूत्र को सिंटैक्स का उपयोग करके बनाया गया है an+b
, जहां:
- "ए" एक पूर्णांक मूल्य है
- "एन" शाब्दिक पत्र "एन" है
- "+" एक ऑपरेटर है और "+" या "-" हो सकता है
- "बी" एक पूर्णांक है और यदि कोई ऑपरेटर सूत्र में शामिल है, तो इसकी आवश्यकता होती है
यह ध्यान रखना महत्वपूर्ण है कि यह सूत्र एक समीकरण है, और प्रत्येक सिबलिंग तत्व के माध्यम से पुनरावृत्ति करता है, यह निर्धारित करता है कि किसे चुना जाएगा। सूत्र का "एन" हिस्सा, यदि शामिल है, तो बढ़ते धनात्मक पूर्णांकों के एक सेट का प्रतिनिधित्व करता है (ठीक उसी तरह जैसे कि एक सरणी के माध्यम से पुनरावृत्ति)। हमारे उपरोक्त उदाहरण में, हमने हर चौथे तत्व को सूत्र के साथ चुना 4n
, जो काम किया क्योंकि हर बार एक तत्व की जाँच की गई थी, "n" एक (4 × 0, 4 × 1, 4 × 2, 4 × 3, आदि) की वृद्धि हुई। यदि किसी तत्व का क्रम समीकरण के परिणाम से मेल खाता है, तो वह चयनित (4, 8, 12, आदि) हो जाता है। इसमें शामिल गणित की अधिक गहन व्याख्या के लिए, कृपया इस लेख को पढ़ें।
आगे वर्णन करने के लिए, यहाँ कुछ मान्य :nth-child
चयनकर्ताओं के उदाहरण दिए गए हैं :
सौभाग्य से, आपको हमेशा गणित स्वयं नहीं करना पड़ता है-वहाँ कई :nth-child
परीक्षक और जनरेटर होते हैं:
- सीएसएस-ट्रिक्स परीक्षक
- वेरो का टेस्टर
: nth-child (a + b)
:nth-child
सीएसएस चयनकर्ताओं विनिर्देश के अनुसार जोड़ा जा सकता है कि एक छोटे से ज्ञात फिल्टर है : प्रारूप :nth-child
का उपयोग करते हुए तत्वों के सबसेट का चयन करने की क्षमता of
। मान लें कि आपके पास मिश्रित सामग्री की एक सूची है: कुछ के पास वर्ग है .video
, कुछ के पास कक्षा है .picture
, और आप पहले 3 चित्रों का चयन करना चाहते हैं। आप ऐसा "फ़िल्टर" के साथ कर सकते हैं:
:nth-child(-n+3 of .picture) ( /* Selects the first 3 elements applied not to ALL children but only to those matching .picture */ )
ध्यान दें कि यह चयनकर्ता को सीधे चयनकर्ता से जोड़ने से अलग है :nth-child
:
.picture:nth-child(-n+3) ( /* Not the same! This applies to elements matching .picture which _also_ match :nth-child(-n+3) */ )
यह थोड़ा भ्रमित कर सकता है, इसलिए एक उदाहरण अंतर को समझने में मदद कर सकता है:
"फ़िल्टर" के लिए ब्राउज़र समर्थन बहुत सीमित है: इस लेखन के रूप में, केवल सफारी ने सिंटैक्स का समर्थन किया। अपने पसंदीदा ब्राउज़र की स्थिति की जाँच करने के लिए, यहाँ से संबंधित खुले मुद्दे हैं :nth-child(an+b of s)
:
- फ़ायरफ़ॉक्स: एनटीएच-बच्चे के लिए समर्थन (सेल का ए + बी)
- Chrome: लागू: nth-child (S का + b)
ब्याज के अंक
:nth-child
स्रोत आदेश के शीर्ष से शुरू होने वाले तत्वों के माध्यम से पुनरावृति। इसके बीच का एकमात्र अंतर है और यह:nth-last-child
है कि उत्तरार्द्ध स्रोत आदेश के नीचे से शुरू होने वाले तत्वों के माध्यम से पुनरावृत्त करता है।n
तत्वों की पहली संख्या का चयन करने के लिए वाक्यविन्यास थोड़ा प्रति-सहज है। आप-n
उन तत्वों की सकारात्मक संख्या के साथ शुरू करते हैं , जिन्हें आप चुनना चाहते हैं। उदाहरण के लिए,li:nth-child(-n+3)
पहले 3li
तत्वों का चयन करेंगे ।:nth-child
चयनकर्ता बहुत के समान है:nth-of-type
, लेकिन एक साथ महत्वपूर्ण अंतर: यह कम विशिष्ट है। ऊपर हमारे उदाहरण में, वे एक ही परिणाम का उत्पादन करेंगे क्योंकि हम केवल.module
तत्वों पर पुनरावृत्ति कर रहे हैं , लेकिन अगर हम भाई-बहनों के एक अधिक जटिल समूह पर पुनरावृत्ति कर रहे हैं,:nth-child
तो सभी भाई-बहनों को एक ही तत्व प्रकार के भाई-बहन से मिलाने की कोशिश करेंगे। इससे पता चलता है कि:nth-child
यह एक व्यवस्था में किसी भी सिबलिंग तत्व का चयन कर सकता है, न कि उन तत्वों को जो कोलन से पहले निर्दिष्ट किए गए हैं।
ब्राउज़र का समर्थन
क्रोम | सफारी | फ़ायर्फ़ॉक्स | ओपेरा | अर्थात | एंड्रॉयड | आईओएस |
---|---|---|---|---|---|---|
कोई | ३.२+ | कोई | 9.5+ | 9+ | कोई | कोई |
:nth-child
CSS चयनकर्ता मॉड्यूल 3 में पेश किया गया था, जिसका अर्थ है कि पुराने संस्करण के ब्राउज़र इसका समर्थन नहीं करते हैं। हालांकि, आधुनिक ब्राउज़र समर्थन त्रुटिहीन है, और नए छद्म चयनकर्ता व्यापक रूप से उत्पादन वातावरण में उपयोग किए जाते हैं। यदि आपको IE के लिए पुराने ब्राउज़र समर्थन की आवश्यकता है, या तो IE के लिए पॉलीफ़िल, या गैर-महत्वपूर्ण तरीकों से इन चयनकर्ताओं का उपयोग करें, जो कि प्रगतिशील वृद्धि है।