2012-08-09 10 views
19

यदि कोई सीएसएस नियम है जो !important का उपयोग करता है, तो !important नियम को निकालने का कोई तरीका है ताकि मैं जेएस या jQuery के साथ और डाउनस्ट्रीम शैली में बदलाव कर सकूं?क्या मैं सीएसएस को हटाने/अस्वीकार करने के लिए jquery का उपयोग कर सकता हूं! महत्वपूर्ण नियम?

theirs.css

div.stubborn { display: none !important; } 

mine.js

$('.stubborn').fadeIn(); // won't work because of !important flag 

दुर्भाग्य से, मैं शैली !important नियम लागू करने पर नियंत्रण तो मैं एक काम के आसपास की जरूरत नहीं है।

उत्तर

15

दुर्भाग्य से, आप शामिल theirs.css नीचे इनलाइन/आंतरिक शैली के रूप में !important का उपयोग किए बिना !important ओवरराइड नहीं कर सकते।

आप !important शैली को परिभाषित कर सकते हैं और इसे .stubborn पर जोड़ सकते हैं और फिर अस्पष्टता समायोजित कर सकते हैं ..नीचे देखें,

सीएसएस:

div.hidden_block_el { 
    display: block !important; 
    opacity: 0; 
} 

जे एस:

$('.stubborn') 
    .addClass('hidden_block_el') 
    .animate({opacity: 1}); 

डेमो:http://jsfiddle.net/jjWJT/1/

वैकल्पिक दृष्टिकोण (इनलाइन),

$('.stubborn') 
    .attr('style', 'display: block !important; opacity: 0;') 
    .animate({opacity: 1}); 

डेमो:http://jsfiddle.net/jjWJT/

+9

+1 दुर्भाग्य से यह एक हैक एक के प्रकार के रोजगार की जब वहाँ "महत्वपूर्ण पर एक विस्फोट है की जरूरत है की तरह काम "फैक्टरी –

+1

कुछ अच्छी पढ़ाई http://stackoverflow.com/questions/3706819/what-are-the-implications-of-using-important-in-css http://coding.smashingmagazine.com/2010/11/02/महत्वपूर्ण-सीएसएस-घोषणा-कैसे-और-कब-उपयोग-यह/ –

+0

+1 मैं दूसरा _inline_ दृष्टिकोण, विशेष रूप से jQuery मोबाइल का उपयोग कर अपने मामले में। वास्तव में इनलाइन दृष्टिकोण के लिए – Omar

0

आप के साथ एक नई सीएसएस शैली जोड़ सकते हैं महत्वपूर्ण यह करने के लिए कहा कि मूल शैली

यह जावास्क्रिप्ट में एक और उत्तर से है को पार कर जाएगी:

function addNewStyle(newStyle) { 
var styleElement = document.getElementById('styles_js'); 
if (!styleElement) { 
    styleElement = document.createElement('style'); 
    styleElement.type = 'text/css'; 
    styleElement.id = 'styles_js'; 
    document.getElementsByTagName('head')[0].appendChild(styleElement); 
} 
styleElement.appendChild(document.createTextNode(newStyle)); 
} 

addNewStyle('td.EvenRow a {display:inline !important;}') 

इस जवाब here

है

यह भी मेरा मानना ​​है कि आप इस

 .css({ 'display' : 'block !important' }); 
जैसे स्टाइल जोड़ सकते हैं JQuery में

1

आपको फीका लागू करने के लिए एक नई कक्षा बनाने की आवश्यकता है।

सीएसएस:

div.stubborn { display: none !important; } 
div.stubborn.fade-ready { display: block !important; opacity: 0; } 

जे एस:

$('.stubborn').addClass('fade-ready').animate({opacity: 1}); //to show 
$('.stubborn').fadeOut(function() {$(this).removeClass('fade-ready');}); //to hide 

डेमो HERE

3

बस एक style="" टैग किसी भी चित्र को इस मुद्दे के साथ जोड़ने के लिए, उम्मीद है कि वे सब उन्हें वर्ग को परिभाषित है कि यह ऐसा करने के लिए आसान है किसी प्रकार का है।

$('div.stubborn').attr('style', 'display: inline !important;');​ 

jsFiddle DEMO

0

मैं कई तरीकों की कोशिश की है, लेकिन सबसे अच्छा परिणाम रहा एक अलग वर्ग में सीएसएस शैली जोड़कर प्राप्त किया है, तो jQuery के साथ निकाल सकते हैं (महत्वपूर्ण!):

सीएसएस :

.important-css-here { display: block !important;} 

jQuery में:

$("#selector").addClass("important-css-here"); 
,210 तो

, जब मैं जरूरत:

$("#selector").removeClass("important-css-here"); 

एक आकर्षण ;-)

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

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