2009-04-08 15 views
5

मेरे HTML पृष्ठ में "मुख्य" नामक एक आईडी वाला एक div है, और मैं अपने HTML पृष्ठ में एक और HTML पृष्ठ भी शामिल कर रहा हूं, जिसमें एक ही आईडी ("मुख्य") वाला div शामिल है। मुझे अपने HTML पृष्ठ के आईडी ("मुख्य") में नाम स्थान जोड़ने की आवश्यकता है।सीएसएस में नेमस्पेस का उपयोग कैसे करें?

मैं हेडर, एक और साइट से पाद लेख और मेरी साइट से सामग्री को उस HTML पृष्ठ पर शामिल कर रहा हूं। यदि वह अन्य साइटें उसी आईडी का उपयोग करती हैं जैसे मेरी साइट का उपयोग कर रहा है, तो यहां संघर्ष हो रहा है।

इस HTML पृष्ठ में दो सीएसएस फ़ाइलें शामिल हैं। यदि उनमें से दोनों एक अलग शैली के साथ एक ही कक्षा के साथ यहां एक समस्या है।

मुझे अपने कोड पर अपनी सीएसएस फ़ाइल और अन्य कोड को लागू करने की आवश्यकता है। कोई भी शरीर मेरी समस्या का समाधान कर सकता है?

उत्तर

1

मैं अब तक सभी के साथ सहमत हूं कि इसमें कोई मूल सीएसएस नेमस्पेस क्षमता नहीं है और यदि आपके पास HTML (एचटीएमएल) को संपादित करने के लिए नियंत्रण (या इच्छा/क्षमता) है तो यह सबसे अच्छा तरीका है।

प्रक्रिया को स्वचालित करने का एक तरीका आपको उस HTML को पार्स करने के लिए एक स्क्रिप्ट (PERL, PHP, .NET, इत्यादि) लिखना होगा और किसी मौजूदा आईडी या क्लास को संशोधित संस्करण के साथ प्रतिस्थापित करना होगा।

अर्थात <tag id="theID" class="theClass anotherClass"><tag id="NAMESPACEtheID" class="NAMESPACEtheClass NAMESPACEanotherClass">

आप कुछ रचनात्मक नियमित अभिव्यक्ति के साथ यह पूरा कर सकता है, हालांकि यह जटिल काम मिलेगा वहाँ जावास्क्रिप्ट कोड है कि रूप में अच्छी तरह से संशोधित किया जा करने की आवश्यकता होगी अगर हो जाता है।

जहां तक ​​प्रदर्शन चलता है, यह फ़ाइल के आकार के आधार पर एक बड़ी हिट होगी और आप शायद परिणाम कैश करना चाहते हैं, या मूल फ़ाइल को फिर से लिखना चाहते हैं।

अगर आप उस मार्ग पर जाने का फैसला करते हैं तो मुझे बताएं, विचार वास्तव में थोड़ा सा दिलचस्प लगता है और मेरे टूलबॉक्स में एक जगह हो सकती है!

0

दूसरे div की आईडी में दूसरे div के नाम का उपयोग करें। E.g यदि दूसरे पृष्ठ को signup.html कहा जाता है, तो main_signup

2

क्या divs के तत्वों के बारे में कुछ भी है जो उन्हें एक दूसरे से अलग रखेंगे। यदि आप वहां मौजूद तत्व के साथ अपने सीएसएस घोषणा को उपसर्ग कर सकते हैं और दोनों divs के लिए एक अद्वितीय शैली निर्दिष्ट कर सकते हैं।

उदाहरण के लिए:

#main 
{Style} 
.container #main 
{Another style} 

के रूप में लोगों का उल्लेख किया है, आप HTML पर नियंत्रण है अगर यह दोनों तत्वों या उनमें से प्रत्येक के लिए एक अद्वितीय ID के लिए एक अलग वर्ग निर्दिष्ट करने के लिए बुद्धिमान हो जाएगा।

+0

आपने मुझे इसे हराया। उत्तरों पर ऑटो अपडेट सुविधा अच्छा है। – IEnumerator

+0

एचटीएमएल दस्तावेज़ में एक ही आईडी रखने के लिए सही नहीं है, है ना? – Sergey

+0

तकनीकी रूप से नहीं, लेकिन ऐसा लगता है कि जॉन का नियंत्रण सीमित है कि तत्वों को क्या कहा जाता है। – Sam152

4

दो बातें:

  • ऐसा लगता है कि आप एक वर्ग है, नहीं एक आईडी की जरूरत है।
  • शैलियों के बीच प्रति पृष्ठ अंतर लागू करने के लिए देख रहे हैं तो एम्बेडेड स्टाइलशीट का उपयोग करें।

इस मामले में एक ही आईडी का उपयोग निश्चित रूप से broken windows के साथ रहने का मामला होगा। यदि आपके पास स्थिति पर कोई नियंत्रण है, तो आपको बाद में और भी भ्रम को आमंत्रित करने के बजाय HTML को अपडेट करना चाहिए।

+1

प्रति पृष्ठ अंतर प्राप्त करने के लिए आपको एम्बेडेड स्टाइलशीट की आवश्यकता नहीं है! आपने बस बॉडी टैग पर एक आईडी डाली है। – AmbroseChapel

+0

मेरी वरीयता नहीं है क्योंकि यह सीएसएस फाइलों को अव्यवस्थित कर सकती है। हमने यह चर्चा सिर्फ दूसरे दिन काम पर की थी। यह केवल उस पर टूट सकता है: वरीयता। यहां लोगों का एक समूह है जो अबू पर बहस कर रहा है: http://www.webmasterworld.com/css/3115364.htm मैं दोनों तरफ देखता हूं, आपके सभी नियम एक ही स्थान पर होना अच्छा लगता है। – cgp

2

डुप्लिकेट आईडी वाला एक पृष्ठ मान्य नहीं है। यहां तक ​​कि यदि आप कक्षाओं के साथ आईडी को संयोजित करके अलग-अलग तत्वों को लक्षित करने का प्रबंधन करते हैं, तो यह सभी ब्राउज़रों के साथ काम करने की गारंटी नहीं है।

वैध पृष्ठ बनाने के लिए तत्वों को एक अद्वितीय आईडी होना चाहिए।

1

संक्षेप में, सीएसएस में नेमस्पेस जैसी कोई चीज़ नहीं है। अन्य उत्तरों के प्रस्तावों में से एक का उपयोग करें :)

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