2014-07-22 12 views
7

doc से, मैं नीचे की तरह नाम स्थान का उपयोग पाया:सीएसएस में @ नेमस्पेस का उपयोग क्या है?

@namespace foo url(http://www.example.com); 
foo|h1 { color: blue } 

लेकिन मैं इस बारे में अधिक जानना चाहते हैं। हम इसका उपयोग क्यों करते हैं?

+0

खैर, यह लगभग इस्तेमाल कभी नहीं किया है ... लेकिन उद्देश्य तो यह है कि दो तीसरे पक्ष एक ही शैली नाम पर टकराव नहीं है ... –

+0

कहाँ आप इसे प्रयोग कर रहे हैं (या के लिए इच्छुक इसका इस्तेमाल करें), किस संदर्भ में, क्यों? – jtheletter

+0

जिस दस्तावेज़ से आप लिंक करते हैं वह CSS3 नेमस्पेस मॉड्यूल और एक्सएमएल स्पेक के लिंक होते हैं जहां आपको अपनी आवश्यक सारी जानकारी मिल जाएगी। लिंक ठीक हैं - मुझे विश्वास नहीं है कि आप उन्हें नहीं ढूंढ सकते हैं। – BoltClock

उत्तर

5

अपने दिए गए उदाहरण में, color: blue नियम foo नाम स्थान (url(example.com) से जुड़े हुए) में केवल h1 तत्वों तक ही सीमित रहेगा।

मेरे ज्ञान के लिए, इसे अक्सर आवश्यक नहीं माना जाता है। और यह निश्चित रूप से अजीब लग रहा है। http://nimbupani.com/spacing-out-on-css-namespaces.html

केवल एक चीज में परिभाषित करता है कि कैसे सीएसएस में एक XML namespace उपसर्ग घोषित करने के लिए है:

यहाँ अपने आवेदन का एक अच्छा सारांश है। यदि आप चयनकर्ताओं का उपयोग करना चाहते हैं तो यह आवश्यक है जो केवल एक निश्चित नामस्थान में तत्वों से मेल खाते हैं।

उदाहरण के लिए, एसवीजी कुछ सामान्य तत्व साझा करता है (उदा। <a>) और एक्सएमएल और एचटीएमएल के साथ एचटीएमएल के साथ सीएसएस गुण। यदि आप एचटीएमएल और एसवीजी दस्तावेजों दोनों के लिए एक ही स्टाइलशीट का उपयोग कर रहे हैं, तो किसी भी ओवरलैप को रोकने के लिए एसवीजी और एचटीएमएल के लिए शैलियों को अलग करना सबसे अच्छा है। ...

यहाँ एक अच्छा कदम-दर-कदम अपने हिस्से के टूटने है:

@namespace डिफ़ॉल्ट नामस्थान घोषित और एक नामस्थान उपसर्ग के लिए एक नाम स्थान बांधता है। डिफ़ॉल्ट नेमस्पेस उन नामों पर लागू होता है जिनके पास एक स्पष्ट नामस्थान घटक नहीं है। ... यदि आप उपसर्ग के साथ @namespace नियम घोषित करते हैं, तो आप नामस्थान-योग्य नामों में उपसर्ग का उपयोग कर सकते हैं। ...

और अंत में, यहाँ MDN के दस्तावेज़ है: https://developer.mozilla.org/en-US/docs/Web/CSS/@namespace

@namespace नियम है एक पर नियम है कि XML नामस्थान कि शैली पत्रक में उपयोग किया जाएगा परिभाषित करता है। परिभाषित नामस्थानों का उपयोग सार्वभौमिक, प्रकार, और विशेषता चयनकर्ताओं को केवल उस नामस्थान के अंतर्गत तत्वों का चयन करने के लिए उपयोग किया जा सकता है। @namespace नियम आमतौर पर केवल उपयोगी होता है जब एकाधिक नामस्थान वाले XML दस्तावेज़ से निपटना-उदाहरण के लिए, एसवीजी एम्बेडेड वाला एक्सएचटीएमएल दस्तावेज़।

@namespace नियम स्टाइल शीट के लिए डिफ़ॉल्ट नामस्थान को परिभाषित करने के लिए उपयोग किया जा सकता है। जब एक डिफ़ॉल्ट नेमस्पेस परिभाषित किया जाता है, तो सभी सार्वभौमिक और प्रकार चयनकर्ता (लेकिन चयनकर्ताओं को विशेषता नहीं देते हैं, नीचे नोट देखें) केवल उस नामस्थान के तत्वों पर लागू होते हैं।

@namespace नियम स्टाइल शीट के लिए नामस्थान उपसर्ग को परिभाषित करने के लिए भी उपयोग किया जा सकता है। एक सार्वभौमिक, प्रकार, या विशेषता चयनकर्ता एक नामस्थान उपसर्ग के साथ उपसर्ग किया जाता है, तो उस चयनकर्ता केवल मेल खाता है तो नाम स्थान तत्व या विशेषता का (और न सिर्फ नाम प्रकार के मामले में या चयनकर्ताओं विशेषता) मैचों।

गैर-एक्सएमएल एचटीएमएल का उपयोग करते समय ज्ञात तत्व स्वचालित रूप से नामस्थान असाइन किए जाएंगे।इसका अर्थ यह है कि HTML तत्व कार्य करेंगे जैसे कि वे एक्सएचटीएमएल नेमस्पेस पर हैं, भले ही HTML दस्तावेज़ में कहीं भी xmlns विशेषता न हो।

ध्यान दें कि XML में, जब तक कोई उपसर्ग किसी विशेषता पर सीधे परिभाषित नहीं किया जाता है, तो उस विशेषता का कोई नामस्थान नहीं होता है। दूसरे शब्दों में, गुण उस तत्व के नामस्थान का वारिस नहीं करते हैं जिस पर वे हैं। इस व्यवहार से मेल खाने के लिए, सीएसएस में डिफ़ॉल्ट नेमस्पेस विशेषता चयनकर्ताओं पर लागू नहीं होता है।

+0

तो यह '@ नेमस्पेस यूआरएल (http://www.w3.org/1999/xhtml) दिखाता है; 'फ़ायरफ़ॉक्स की डिफ़ॉल्ट स्टाइलशीट में पंक्ति सभी के बाद प्रलेखित की जाती है। दिलचस्प। एक विशिष्ट उदाहरण के बारे में अधिक जानकारी और एक प्रश्न [यहां] (http://stackoverflow.com/questions/3608819/what-does-this-mean-in-css/12979656#12979656) पाया जा सकता है। – BoltClock

0

MSDN

एचटीएमएल नाम स्थान से विशेष रूप से इलाज किया जब सीएसएस के साथ एक्सएमएल ब्राउज़ कर रहा है। HTML नामस्थान से तत्व प्रदर्शित होते हैं क्योंकि वे HTML में दिखाई देंगे। यह उन क्षमताओं तक पहुंच की अनुमति देता है जो अभी तक सीएसएस द्वारा प्रदान नहीं किए गए हैं। एम्बेड करने के लिए उपयोगी HTML तत्वों के कुछ उदाहरण <TABLE>, <A>, <IMG>, <SCRIPT>, और <STYLE> हैं।

उदाहरण के लिए, आप निम्न रेस्तरां समीक्षा नमूने में एक लिंक और लोगो जोड़ सकते हैं। सबसे पहले, आपको दस्तावेज़ के शीर्ष पर HTML नामस्थान घोषित करना होगा, और उसके बाद एम्बेडेड HTML तत्वों पर HTML उपसर्ग का उपयोग करना होगा। इस तरह से एम्बेडेड एचटीएमएल अच्छी तरह से गठित एक्सएमएल होना चाहिए, इसलिए <IMG> तत्व को कम से कम अंत टैग की आवश्यकता है।

<story xmlns:HTML="http://www.w3.org/Profiles/XHTML-transitional"> 
    ... 
    <restaurant> 
    <name>Red Apple Inn</name> 
    <logo> 
     <HTML:A href="javascript:alert('Visit the Red Apple Inn!')"> 
     <HTML:IMG src="red-apple.gif" height="50" width="200"/> 
     </HTML:A> 
    </logo> 
    ... 

माइक्रोसॉफ्ट Internet Explorer में, उपसर्ग क्रम में HTML या एचटीएमएल रहना चाहिए तत्वों के लिए HTML तत्वों के रूप में व्याख्या किया जाना है।

एक <HTML:STYLE> ब्लॉक का उपयोग किसी XML दस्तावेज़ में सीएसएस स्टाइल शीट को एम्बेड करने के लिए किया जा सकता है। यह ब्लॉक शैली शीट प्रसंस्करण निर्देशों द्वारा इंगित किसी भी स्टाइल शीट को बढ़ाएगा। जब कोई बाहरी स्टाइल शीट नहीं होती है, तब भी एक स्टाइल शीट प्रसंस्करण निर्देश होना चाहिए जो इंगित करता है कि XML दस्तावेज़ को सीएसएस स्टाइल शीट भाषा का उपयोग करके प्रदर्शित किया जाना चाहिए, भले ही कोई href विशेषता निर्दिष्ट न हो।

निम्नलिखित उदाहरण दिखाता है कि HTML.cpace, <HTML:STYLE> तत्व, और href विशेषता के बिना स्टाइल शीट प्रसंस्करण निर्देश का उपयोग कर XML.c दस्तावेज़ शैली में XML.c दस्तावेज़ शैली को कैसे एम्बेड किया जा सकता है। एचटीएमएल

<?xml version="1.0"?> 
<?xml-stylesheet type="text/css"?> 
<story xmlns:HTML="http://www.w3.org/Profiles/XHTML-transitional"> 
    <HTML:STYLE> 
    story 
    { 
     display: block; 
     font-family: Arial, Helvetica, sans-serif; 
     font-size: small; 
     width: 30em; 
    } 
    restaurant 
    { 
     display: block; 
     padding: 1.2em; 
     font-size: x-small; 
     margin-bottom: 1em; 
    } 
    ... 
    </HTML:STYLE> 
    <restaurant> 
    ... 
संबंधित मुद्दे