Ich entdeckte gestern etwas seltsam, wenn Sie mit einem Stück JS-Code arbeiten. Ich hatte eine div
, die versteckt war (display:none
), und ich benutzte die Höhe davon in einigen Berechnungen in JS. Das war alles in Ordnung, bis ich meine "versteckte" Klasse hinzugefügt (die display:none !important
hat).! Wichtig und Anzeige: keine und .height() Seltsamkeit
Plötzlich war die Höhe immer 0
. Es gab keine anderen Änderungen als !important
auf dem Display.
Nach einigem Graben ich das Problem verengt habe bis auf etwas finde ich ziemlich seltsam:
#b { display:none; } /* reported height is 36 */
#c { display:none !important; } /* reported height is 0 */
Ich habe eine sehr grundlegende erstellt haben JSFiddle diese zu isolieren. Es verwendet auch Vanille JS, um Höhe zu bekommen, die anscheinend gut/wie erwartet funktioniert.
Es scheint, als ob jQuery die Höhe auf unsichtbaren DIVs falsch meldet, und dass sich !important
korrekt verhält.
Ist das ein Fehler in jQuery?
Wahrscheinlich zu berechnen Ihr 'display: none;' ohne '! wichtig' wird überstimmt. Display keine sollte in der Tat 0 – timo
mögliche Duplikate von [jQuery: height()/width() und "display: none"] (http://stackoverflow.com/questions/3632120/jquery-height-width-and-displaynone) – DAC84
@ user3008011 Nein, siehe die Geige. –