2012-03-15 15 views
7

यदि कोई तत्व शैली गुण महत्वपूर्ण है (या तो style="" या जेएस सेट करें), तो इसे कैसे हटाया जा सकता है?आप एक महत्वपूर्ण सीएसएस संपत्ति को कैसे हटा सकते हैं?

removeProperty() काम नहीं करता है (jsfiddle):

elem.style.setProperty('background', '#faa', 'important'); 
elem.style.removeProperty('background'); // doesn't work 

(अधिमानतः एक frameworkless समाधान, यह केवल क्रोम में काम करने के लिए है।)

उत्तर

13

कारण आप संपत्ति नहीं निकाल सकते क्योंकि है यह एक लघु संपत्ति है।

जब आप इसे सेट करते हैं, तो अन्य गुण वास्तव में जोड़े जाते हैं, लेकिन कोई "पृष्ठभूमि" संपत्ति नहीं है, इसलिए निकालने के लिए कोई "पृष्ठभूमि" संपत्ति नहीं है।

इस मामले में, आप इसे इस प्रकार अनसेट कर सकते हैं:

elem.style.removeProperty('background-color'); 

सामान्य में, आप हर "लंबे समय से हाथ" संपत्ति आशुलिपि संपत्ति का प्रतिनिधित्व करती अनसेट नहीं करनी होंगी।


तुम भी इसे अधिलेखित करना ऐसा कर सकता है:

elem.style.setProperty('background', 'inherit', 'important'); 

या आप इस प्रकार का तत्व के लिए पूरी इनलाइन शैली परमाणु सकता है:

elem.style.cssText = ''; 
+1

दिलचस्प यद्यपि कि ' निकालेंप्रॉपर्टी ('पृष्ठभूमि') 'काम करता है अगर यह' महत्वपूर्ण 'के साथ सेट नहीं किया गया था। – Qtax

+0

ग्रेट, 'cssText' मेरे मामले में उपयोगी होगा। +2 ;-) – Qtax

+1

ऐसा प्रतीत होता है कि शॉर्टेंड गुणों को हटाकर सभी संबंधित "लांगहैंड" गुणों को हटा दिया जाएगा जिन्हें 'महत्वपूर्ण' के रूप में सेट नहीं किया गया था। जिन्हें 'महत्वपूर्ण' के रूप में सेट किया गया है (या तो सीधे लैंडहैंड गुणों या शॉर्टेंड संपत्ति के माध्यम से) को स्पष्ट रूप से हटा दिया जाना प्रतीत होता है। मुझे इसका समर्थन करने का कोई संदर्भ नहीं मिला है, लेकिन मुझे लगता है कि यह डिजाइन द्वारा है। –

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