Javascript-Element-Stil

8

Ich bin neugierig, warum dieser

%Vor%

warnt nichts. Natürlich kann ich <div style = "width:100px"> schreiben dann funktioniert alles gut, aber es ist nicht gut für mich, ich brauche CSS. Hier finden Sie eine jsfiddle-Demo

Die genaue Frage ist also: Warum alarmiert dieser Code nicht die Breite von div und wie ist er alarmiert, wenn die Breite von css angegeben wird?

    
mondayguy 22.02.2015, 13:09
quelle

4 Antworten

5

Das JavaScript .style bezieht sich nur auf Inline-Stile für das Element.

Siehe Dokumentation .

Wenn Sie die Breite eines Elements erhalten möchten, sollten Sie offsetWidth verwenden.

%Vor%

Ссылка

    
Ashley Medway 22.02.2015, 13:16
quelle
10

Wie bereits erwähnt, besteht das Problem darin, dass HTMLElement.style die Werte aus dem Attribut style des Elements abruft. Wenn Sie Ihren Stil mit CSS festlegen, müssen Sie stattdessen window.getComputedStyle(element, null).width :

verwenden

%Vor% %Vor% %Vor%

Referenzen:

David Thomas 22.02.2015 13:17
quelle
1

Der Stil gibt nur Zugriff auf Informationen, die in elem.style abgelegt sind. In Ihrem Beispiel sagt Stil nichts über den in CSS definierten Rand aus. Verwenden Sie getComputedStyle () .

%Vor%

jsfiddle demo

    
kasper Taeymans 22.02.2015 13:27
quelle
0

Das .style ist inline style="width:100px;" only ...

Wenn es in CSS (anstatt inline) ist, benötigen Sie getComputedStyle -

Ссылка

    
Rycochet 22.02.2015 13:17
quelle

Tags und Links