रूप W3C Selector Spec प्रति:
सार्वभौमिक चयनकर्ता एक वैकल्पिक नाम स्थान घटक की अनुमति देता है। यह इस प्रकार है के रूप में प्रयोग किया जाता है:
ns|*
नाम स्थान एनएस के सभी तत्वों
*|*
सभी तत्वों
|*
एक namespace
*
बिना सभी तत्वों को यदि कोई डिफ़ॉल्ट नाम स्थान निर्दिष्ट किया गया है, यह * | * के बराबर है। अन्यथा यह ns के बराबर है। * जहां ns डिफ़ॉल्ट नेमस्पेस है।
तो, *
और *|*
हमेशा समान नहीं होते हैं। एक डिफ़ॉल्ट नाम अंतरिक्ष प्रदान की जाती है तो *
केवल तत्वों है कि उस नाम स्थान का हिस्सा हैं का चयन करता है।
आप नेत्रहीन नीचे दो स्निपेट का उपयोग कर अंतर देख सकते हैं। पहले, एक डिफ़ॉल्ट नेमस्पेस परिभाषित किया गया है और इसलिए *
चयनकर्ता केवल उस तत्व के लिए बेज रंगीन पृष्ठभूमि को लागू करता है जो उस नामसेपेस का हिस्सा है जबकि *|*
सभी तत्वों के लिए सीमा लागू करता है।
@namespace "http://www.w3.org/2000/svg";
* {
background: beige;
}
*|* {
border: 1px solid;
}
<a href="#">This is some link</a>
<svg xmlns="http://www.w3.org/2000/svg">
<a xlink:href="#">
<text x="20" y="20">This is some link</text>
</a>
</svg>
नीचे में झलकी कोई डिफ़ॉल्ट नाम स्थान परिभाषित किया गया है और इसलिए दोनों *
और *|*
सभी तत्वों पर लागू होता है और इसलिए उन सभी को दोनों बेज पृष्ठभूमि और काले रंग का बॉर्डर मिलता है। दूसरे शब्दों में, वे वैसे ही काम करते हैं जब कोई डिफ़ॉल्ट नेमस्पेस निर्दिष्ट नहीं होता है।
* {
background: beige;
}
*|* {
border: 1px solid;
}
<a href="#">This is some link</a>
<svg xmlns="http://www.w3.org/2000/svg">
<a xlink:href="#">
<text x="20" y="20">This is some link</text>
</a>
</svg>
BoltClock टिप्पणियां (1, 2), शुरू में ही जैसे XHTML, एसवीजी आदि के रूप में XML आधारित भाषाओं के लिए लागू किया नामस्थान में बताते हैं के रूप में, लेकिन नवीनतम चश्मा के अनुसार, सभी HTML तत्व (यानी, एचटीएमएल नेमस्पेस में तत्व) को http://www.w3.org/1999/xhtml
पर रखा गया है। फ़ायरफ़ॉक्स इस व्यवहार का पालन करता है और यह सभी HTML5 उपयोगकर्ता एजेंटों में सुसंगत है। आप this answer में अधिक जानकारी प्राप्त कर सकते हैं।
इसी प्रकार के प्रश्न: [क्या करता है '* | *' सीएसएस में क्या मतलब है?] (Http://stackoverflow.com/q/3608819/247696) – Flimm