2010-04-06 15 views
6

मैं इस से छुटकारा पाने की कोशिश कर रहा हूँ:एचटीएमएल बॉडी तत्व में सीएसएस कैसे लागू करें?

document.body.className = "someclass"; 

मैं सीएसएस में ऐसा करना चाहते हैं।

body.someclass { 
. 
. 
. 
} 

दुर्भाग्य से मैं फ़ायरफ़ॉक्स, क्रोम में यह काम नहीं कर पा रहा हूं।

क्या मैं यहां कुछ भी गलत कर रहा हूं? क्या कोई तरीका है कि हम शरीर में सीएसएस कक्षा लागू कर सकते हैं?

उत्तर

14

आप वहां दो अलग-अलग चीजें कर रहे हैं। आपकी जावास्क्रिप्ट वास्तव में आपके शरीर तत्व के लिए कक्षा "कुछ क्लास" असाइन कर रही है, जबकि आपका सीएसएस स्टाइलिंग वर्ग "कुछ क्लास" श्रेणी वाला बॉडी तत्व है, यह कक्षा को असाइन नहीं करेगा, यह सीएसएस का कार्य नहीं है। आप इस तरह सादा (एक्स) एचटीएमएल में यह करना होगा:

<body class="someclass"> 
+0

मैंने पहले इसका उपयोग किया है और यह काम करता है। +1 – pixeltocode

+0

इसके लिए धन्यवाद, मैं इस तरह से आवेदन करने में सक्षम था। – Manohar

6

समस्या यह है कि मान्य एक्सएचटीएमएल केवल दस्तावेज़ प्रति एक <body> तत्व हो सकता है है। एक वर्ग आमतौर पर एक तत्व के लिए अंकित होता है जो कई बार होता है (या, बल्कि, उस शैली के लिए जिसे आप कई बार लागू करना चाहते हैं)।

सिन्स के साथ केवल एक ही शरीर है, मैंने कभी भी आईडी या कक्षा नहीं जोड़ा है। बस शैली:

body { 
    background-color: red; 
} 

आप एक वर्ग आप पुन: उपयोग करना चाहते हैं, तो अपने चयनकर्ता में एक अल्पविराम का उपयोग करें:

.coolStyle, body { 
    font-weight: bold; 
    color: red; 
    text-decoration: blink; 
} 

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

+0

शायद वह बाद में जावास्क्रिप्ट का उपयोग कर कक्षा बदल रहा है और सिर्फ एक वर्बोज़ तरीके से डिफ़ॉल्ट प्रदान करना चाहता है? बेशक मैं सिर्फ वहां पर विचार कर रहा हूं। –

+0

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

1

शरीर पर कक्षा की कोई आवश्यकता नहीं है क्योंकि आपके दस्तावेज़ में केवल एक ही शरीर होगा। जब तक आप किसी कारण से जावास्क्रिप्ट क्लास के साथ बदलकर शरीर की शैली को बदलना नहीं चाहते हैं।

आप शरीर पर एक वर्ग डाल करने के लिए है, तो यह इस तरह कार्य करें:

<body class="someclass"> 

और फिर वर्ग तक पहुंचने और इस तरह अपने सीएसएस में शैली संशोधित:

body.someclass{ 
    ...(style parameters goes here) 
} 

हालांकि आप कर सकते हैं एक टैग के सभी तत्वों की शैली को बदल और के बाद से आप केवल एक शरीर होगा तो आप बस सीएसएस को यह जोड़ सकते हैं:

body{ 
    ...(style parameters) 
} 

और एचटीएमएल में कुछ भी नहीं जोड़ें। हालांकि टैग्स को पुनः प्राप्त करने के साथ एक शैली के लिए कक्षा का उपयोग किया जाता है जिसका उपयोग कई बार और एक शैली के लिए आईडी किया जाएगा जिसका उपयोग केवल पृष्ठ पर एक बार किया जाएगा। आप एचटीएमएल में इस तरह के एक टैग को आईडी निर्दिष्ट करते हैं:

<tag id="someid"> 
संबंधित मुद्दे