2011-12-28 18 views
7

ड्रोपल का उपयोग करके एचटीएमएल तत्व को लक्षित करने के लिए कैसे करें, थीम का पृष्ठभूमि रंग <HTML> तत्व को सौंपा गया है। मैं एक विशेष पृष्ठ के लिए एक अलग print सीएसएस बना रहा हूं, और उपयोगकर्ता पृष्ठ को प्रिंट करते समय केवल इस पृष्ठ के लिए पृष्ठभूमि रंग को हटाना चाहता हूं। <HTML> तत्व में कोई कक्षा या आईडी नहीं है, लेकिन <BODY> तत्व करता है।बॉडी तत्व

<HTML style="background-color:#666"> 
    <BODY class=specialPage> 
    </body> 
</html> 

वहाँ निर्दिष्ट करने के लिए है कि मैं <BODY> की मूल तत्व चाहते हैं कोई तरीका है? या को <BODY> की कक्षा के आधार पर लक्षित करने का कोई तरीका?

संपादित करें:

|------------------------| 
|   <HTML>   | 
|  |----------|  | 
|  |   |  | 
|  | <BODY> |  | 
|  |   |  | 
|  |----------|  | 
|      | 
|------------------------|  

उत्तर

4

jQuery में आप निम्न कर सकते हैं:

$('body.specialPage').parent('html').css({'background-color': 'white'}); 

यह काम करेंगे एक और तत्व body या नहीं होता है या नहीं।

यहां एक working jsFiddle है।

इसके अलावा, आपको HTML के बजाय अपने एचटीएमएल तत्वों, html के लिए लोअरकेस अक्षरों का उपयोग करना चाहिए।

+0

संपत्ति। – Purag

+0

मैं उस वाक्यविन्यास का उपयोग केवल इसलिए करता हूं क्योंकि मैं बाद में और अधिक गुण जोड़ सकता हूं, और इस प्रकार यह मेरे कोड बेस को अधिक रखरखाव करने के लिए प्रेरित करता है। बस व्यक्तिगत वरीयता। –

+0

शायद यह वही तरीका है जिस पर इसे काम करना है। – Mechaflash

3
$("body.specialPage") 
    .closest("html") 
    .css("background-color",""); 

पहली पंक्ति शरीर के तत्व को विशेष वर्ग के साथ लक्षित करती है। फिर हम इसके मूल HTML टैग का चयन करते हैं और इसके पृष्ठभूमि रंग को 'हटा दें'। सौंदर्य यह है कि यह अभिभावक HTML का चयन नहीं करेगा यदि वर्ग विशेष रूप से उस व्यक्ति पर सेट नहीं है जिसे आप ढूंढ रहे हैं।

यह भी काम करेगा:

if($("body").hasClass("specialPage")){ 
    $("html").css("background-color",""); 
} 

jQuery के hasClass() रिटर्न एक बूलियन (true अगर यह वर्ग और false है यदि ऐसा नहीं होता है), इसलिए शरीर टैग वर्ग आप द्वारा खोजे जा रहे है , यह कोड को फ़ंक्शन में चलाएगा, जो HTML टैग से पृष्ठभूमि रंग को फिर से हटा देता है।

3

आप sinice आप केवल एक बदल रहे हैं! महत्वपूर्ण संशोधक के साथ एचटीएमएल टैग से पृष्ठभूमि रंग शैली अधिभावी) `सीएसएस के लिए नक्शा सिंटैक्स का उपयोग करने (` कोई ज़रूरत नहीं की कोशिश कर सकते ..

<HTML style="background-color:#666"> 
    <BODY class=specialPage style="background-color:#123 !important"> 
    </body> 
</html> 
+0

शायद यह पसंदीदा तरीका है क्योंकि स्टाइल वास्तव में जावास्क्रिप्ट में नहीं होना चाहिए। +1 –

+0

मेरे प्रश्न में एक संपादन बनाया गया। यह शेष डिफ़ॉल्ट स्टाइल को छोड़कर काम करेगा। – Mechaflash

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