यह CSS2.1 के साथ उल्लेखनीय नहीं है, लेकिन यह CSS3 की विशेषता सबस्ट्रिंग-मैचिंग चयनकर्ताओं के साथ संभव है (जो IE8 + में समर्थित हैं :
div[class^="status-"], div[class*=" status-"]
दूसरे विशेषता चयनकर्ता में अंतरिक्ष चरित्र को नोटिस करें। यह div
उन तत्वों को उठाता है जिनकी class
विशेषता इन स्थितियों में से किसी से मिलती है:
[class^="status-"]
- "स्थिति-" से शुरू होता है
[class*=" status-"]
- इसमें स्पेसिंग कैरेक्टर के बाद सीधे "स्टेटस-" होता है। HTML स्पेस के अनुसार क्लास के नाम व्हाट्सएप द्वारा अलग किए जाते हैं , इसलिए यह महत्वपूर्ण स्पेस कैरेक्टर है। यह कई वर्गों के निर्दिष्ट होने के बाद पहली बार किसी भी अन्य वर्गों की जाँच करता है, और विशेषता मूल्य अंतरिक्ष-गद्देदार (जो कुछ अनुप्रयोगों के साथ हो सकता है जो आउटपुट class
विशेषताओं को गतिशील रूप से हो सकता है) पहली कक्षा की जाँच का एक बोनस जोड़ता है ।
स्वाभाविक रूप से, यह jQuery में भी काम करता है, जैसा कि यहां दिखाया गया है ।
ऊपर बताए अनुसार आपको दो विशेषता चयनकर्ताओं को संयोजित करने की आवश्यकता है क्योंकि एक विशेषता चयनकर्ता जैसे [class*="status-"]
कि निम्नलिखित तत्व से मेल खाएगा, जो अवांछनीय हो सकता है:
<div id='D' class='foo-class foo-status-bar bar-class'></div>
यदि आप यह सुनिश्चित कर सकते हैं कि ऐसा परिदृश्य कभी नहीं होगा, तो आप सरलता के लिए ऐसे चयनकर्ता का उपयोग करने के लिए स्वतंत्र हैं। हालांकि, ऊपर संयोजन अधिक मजबूत है।
यदि आपके पास HTML स्रोत या मार्कअप जनरेट करने वाले एप्लिकेशन पर नियंत्रण है, तो यह केवल status-
इसके status
बजाय उपसर्ग को अपनी कक्षा बनाने के लिए सरल हो सकता है, जैसे कि गम्बो सुझाव देता है ।
status-
और आप उस से मेल नहीं खाना चाहते हैं, तो चयनकर्ता और भी जटिल हो जाता है:div[class^="status-"]:not(.status-), div[class*=" status-"]:not(.status-)
इसके अलावा आप IE7 / IE8 समर्थन खो देते हैं। शुक्र है, अगर आपका मार्कअप सन्न है, तो आपको ऐसी क्लास को बाहर करने की जरूरत नहीं होगी।