2012-06-15 6 views
15

के कई वंशजों का चयन? उदाहरण:सीएसएस एक निश्चित वर्ग, आईडी के एक पूर्वज है कि एक से अधिक तत्वों, आदि सीएसएस में चयन करने के लिए यह संभव है एक और तत्व

table.exams caption, tbody, tfoot, thead, tr, th, td 

यदि नहीं, तो उस तत्व के सभी वंशजों का चयन करने का कोई तरीका है?

उत्तर

23

क्या सीएसएस में एक निश्चित वर्ग, आईडी इत्यादि के पूर्वजों के कई तत्वों का चयन करना संभव है?

वर्तमान में, नहीं पूरे पूर्वज चयनकर्ता डुप्लिकेट करने और, वंश के सभी निर्दिष्ट करने दुर्भाग्य बिना:

table.exams caption, 
table.exams tbody, 
table.exams tfoot, 
table.exams thead, 
table.exams tr, 
table.exams th, 
table.exams td 

यह केवल जब तक चयनकर्ता 3 को अंतिम रूप दिया जा रहा था देर के बाद यह था कि वे एक छद्म प्रस्तावित ऐसा करने के लिए क्लास नोटेशन, और हाल ही में ही बुनियादी कार्यान्वयन शुरू हो गया है। थोड़ा इतिहास सबक के लिए this answer देखें।

संक्षेप में, छद्म वर्ग जो मानक में प्रवेश कर चुका है उसे :matches() के रूप में जाना जाता है।

table.exams :matches(caption, tbody, tfoot, thead, tr, th, td) 

यदि नहीं, तो वहाँ उस वर्ग के सभी वंशजों का चयन करने के लिए एक रास्ता है: दूर भविष्य में, एक बार :matches() को लागू करने शुरू ब्राउज़रों, तो आप इस तरह कुछ करने के लिए सक्षम हो जाएगा?

ठीक है, तो आप बस एक तारक *, जो any element का प्रतिनिधित्व करता है का उपयोग कर सकते हैं। देखते हुए कि आप th और अपने चयनकर्ता में td है, तो आप शायद बजाय सभी सन्तान table.exams के सभी बच्चों मतलब है, तो > का उपयोग नहीं करते हैं, बजाय एक अंतरिक्ष का उपयोग करें:

table.exams * 

लेकिन वास्तव में, से बचने के इस कर । यदि आप कर सकते हैं, तो यह निर्दिष्ट करने के लिए अपना पूरा प्रयास करें कि आप किस प्रकार के वंशज चुनने की कोशिश कर रहे हैं।


तालिकाओं के साथ विशेष रूप से, आप दूर table.exams > :not(.colgroup), table.exams > * > tr > * साथ प्राप्त कर सकते हैं, लेकिन जैसा कि आप बता सकते हैं यह अविश्वसनीय रूप से गुप्त है (नहीं यह मान लिया गया है तो आप इस तालिका के अंदर कोई script-supporting elements या नेस्टेड तालिकाओं है उल्लेख करने के लिए) और आप आप उन सभी वंशों को सूचीबद्ध करना बेहतर कर सकते हैं जिन्हें आप स्पष्ट रूप से चाहते हैं।

+2

याद रखें कि यह ** अत्यधिक ** अक्षम है। जैसा कि आप पहले ** ** ** डॉम में तत्वों का चयन करते हैं, और ** इसे पीछे से पीछे की तरफ ** प्रत्येक के लिए मूल तत्व तक, 'table' तत्व की खोज करते हैं। –

+0

महान मदद! धन्यवाद। –

0

बच्चों चयनकर्ता इस तरह दिखता है:

ul > li { 

} 

इस li कि ul

के प्रत्यक्ष बच्चों यदि आप सभी सन्तान को लक्षित करना चाहते हैं सब, * का भी उपयोग कर लक्ष्य बनाएगा

मुझे यकीन नहीं है कि मैंने आपके प्रश्न के पहले भाग को समझ लिया है!

0

क्या सीएसएस में किसी निश्चित वर्ग के पूर्वजों के कई टैग चुनना संभव है?

यह एससीएसएस उपयोग करने के लिए एक परिणाम के लिए इसी तरह की प्राप्त करने के लिए संभव है: के रूप में this article

इसके अलावा में दिखाया गया है, मैच, कुछ ब्राउज़र विक्रेता विशिष्ट उपसर्ग के साथ :matches के लिए आंशिक समर्थन है।

संबंधित मुद्दे