@Diffy, cssText ist die Eigenschaft 'cssText' der Eigenschaft 'style'. (dh element.style.cssText)
klokop
Ich musste sowohl Höhe als auch Breite mit dieser Methode einstellen, man muss es als Einzeiler schreiben. Beispiel$('img').css('cssText', "max-width: " +ui.value + 'px !important;' + "max-height: "+ui.value + 'px !important;');
Vincent Tang
2
@ Juan Obwohl es Ihnen auch nicht Inline-Stile bringen wird. Sie erhalten eine Zeitung mit CSS.
Für die Zeiten, in denen Sie jquery verwenden müssen, um! Wichtige Eigenschaften festzulegen, ist hier ein Plugin, das ich erstelle und das Ihnen dies ermöglicht.
Wenn Sie wirklich CSS überschreiben müssen, das! Wichtige Regeln enthält, zum Beispiel in einem Fall, auf den ich kürzlich gestoßen bin, ist das Überschreiben eines WordPress-Themas erforderlich! Wichtige SCSS-Regeln, um das Thema zu brechen, aber da ich meinen Code mit Webpack und transpiliert habe (Ich nehme an, dies ist der Grund -) Mein CSS kam nach dem transpilierten Javascript in die Kette. Sie können Ihrem Stylesheet eine separate Klassenregel hinzufügen, die die erste! Wichtige Regel in der Kaskade überschreibt, und die schwergewichtete Klasse eher umschalten als CSS dynamisch anpassen. Nur ein Gedanke.
Sie müssen !importantCSS nicht mit jQuery ändern, da es das styleAttribut für die Elemente im DOM direkt ändert . !importantwird nur in Stylesheets benötigt, um zu verhindern, dass eine bestimmte Stilregel auf einer niedrigeren Ebene überschrieben wird. Ändern styledirekt ist die unterste Ebene Sie gehen können, so !importanthat keine Bedeutung.
Es sei denn, Sie möchten eine bestehende! Wichtige Regel überschreiben ...
Quentin
2
Ja, wenn !importantdas Stylesheet ein Element enthält, das Sie überschreiben möchten, benötigen Sie es in $().css().
Paul D. Waite
Wie die anderen Kommentare impliziert haben, ist dies einfach falsch. Während das styleAttribut alle CSS überschreibt, ohne die angewendet wird !important, wirkt es sich nicht auf CSS aus, mit dem angewendet wird !important.
Makyen
1
Dies ist nicht nur falsch, sondern OP fragte WIE nicht, ob er es brauchte
Antworten:
Anscheinend ist dies in jQuery möglich:
$("#tabs").css("cssText", "height: 650px !important;");
Src: http://bugs.jquery.com/ticket/2066
quelle
$('img').css('cssText', "max-width: " +ui.value + 'px !important;' + "max-height: "+ui.value + 'px !important;');
Ich habe dieses Problem gelöst mit:
inputObj.css('cssText', inputObj.attr('style')+'padding-left: ' + (width + 5) + 'px !IMPORTANT;');
Es geht also kein Inline-Style verloren, der letzte überschreibt den ersten
quelle
Es ist auch möglich, wichtigere Eigenschaften hinzuzufügen:
inputObj.attr('style', 'color:black !important; background-color:#428bca !important;');
quelle
var tabsHeight = 650; $("tabs").attr('style', 'height: '+ tabsHeight +'px !important');
ODER
#CSS .myclass{height:650px !important;}
dann
$("tabs").addClass("myclass");
quelle
Wenn Sie jquery verwenden müssen! Wichtig für mehr als einen Artikel, würden Sie dies so tun.
Setzen Sie beispielsweise die
img
Tags max-width und max-height auf jeweils 500px$('img').css('cssText', "max-width: 500px !important;' + "max-height: 500px !important;');
quelle
Für die Zeiten, in denen Sie jquery verwenden müssen, um! Wichtige Eigenschaften festzulegen, ist hier ein Plugin, das ich erstelle und das Ihnen dies ermöglicht.
$.fn.important = function(key, value) { var q = Object.assign({}, this.style) q[key] = `${value} !important`; $(this).css("cssText", Object.entries(q).filter(x => x[1]).map(([k, v]) => (`${k}: ${v}`)).join(';')); }; $('div').important('color', 'red');
quelle
Wenn Sie wirklich CSS überschreiben müssen, das! Wichtige Regeln enthält, zum Beispiel in einem Fall, auf den ich kürzlich gestoßen bin, ist das Überschreiben eines WordPress-Themas erforderlich! Wichtige SCSS-Regeln, um das Thema zu brechen, aber da ich meinen Code mit Webpack und transpiliert habe (Ich nehme an, dies ist der Grund -) Mein CSS kam nach dem transpilierten Javascript in die Kette. Sie können Ihrem Stylesheet eine separate Klassenregel hinzufügen, die die erste! Wichtige Regel in der Kaskade überschreibt, und die schwergewichtete Klasse eher umschalten als CSS dynamisch anpassen. Nur ein Gedanke.
quelle
Sie müssen
!important
CSS nicht mit jQuery ändern, da es dasstyle
Attribut für die Elemente im DOM direkt ändert .!important
wird nur in Stylesheets benötigt, um zu verhindern, dass eine bestimmte Stilregel auf einer niedrigeren Ebene überschrieben wird. Ändernstyle
direkt ist die unterste Ebene Sie gehen können, so!important
hat keine Bedeutung.quelle
!important
das Stylesheet ein Element enthält, das Sie überschreiben möchten, benötigen Sie es in$().css()
.style
Attribut alle CSS überschreibt, ohne die angewendet wird!important
, wirkt es sich nicht auf CSS aus, mit dem angewendet wird!important
.