document.body.style.marginTop gibt eine leere Zeichenfolge in JS zurück

8

Es war mein Verständnis, dass [elem] .style.maginTop eine Zeichenkette mit dem oberen Rand des Elements zurückgeben würde.

Stattdessen erhalte ich immer eine leere Zeichenfolge. Ich möchte das mit dem Körper benutzen, aber ich habe auch ein div versucht, und das hat auch nicht funktioniert.

%Vor% %Vor% %Vor%

Ich bin mir nicht sicher, was ich falsch mache ... Hat jemand eine Nicht-jQuery-Lösung?

    
PullJosh 26.12.2015, 15:40
quelle

5 Antworten

11

Die HTMLElement.style gibt nur Inline-Stile zurück:

  

Die HTMLElement.style-Eigenschaft gibt ein CSSStyleDeclaration-Objekt zurück, das das Stilattribut des -Elements darstellt .

Um auf Stile aus Stylesheets zuzugreifen, verwenden Sie Window.getComputedStyle (Element) :

  

Die Window.getComputedStyle () -Methode gibt die Werte von alle CSS-Eigenschaften eines Elements nach dem Anwenden der aktiven Stylesheets und löst alle grundlegenden Berechnungen auf, die diese Werte enthalten können.

%Vor% %Vor% %Vor%
    
Johan Karlsson 26.12.2015, 15:47
quelle
2

Sie können getComputedStyle und getPropertyValue verwenden, um den oberen Rand zu erhalten.

%Vor% %Vor% %Vor%

Getestet und funktioniert.

    
Nicolo 26.12.2015 15:58
quelle
0

Hm, ich habe es auch mit dem gleichen Ergebnis versucht wie du. Eine schnelle Google-Suche tauchte auf JavaScript verwenden, um html / body-Tag zu lesen margin-top , die style.getPropertyValue () verwendet, um die gesuchten Informationen zurückzugeben.

    
Mike Minneman 26.12.2015 15:49
quelle
0

anstelle von Core-JavaScript verwenden, können Sie js-Bibliothek jQuery verwenden. Dann benutze diesen syntax, um seinen Wert zu erhalten.:

%Vor%

für reines Javascript verwenden Sie dies

%Vor%

Ссылка

    
Ahmad Asjad 26.12.2015 15:48
quelle
0

Ich weiß nicht, warum, aber ich habe es funktioniert, indem ich die margin-top zuerst durch JS zugewiesen habe.

%Vor% %Vor% %Vor%
    
zer00ne 26.12.2015 16:18
quelle

Tags und Links