Warum gibt der Browser eine leere Zeichenfolge in style.height zurück? Wie bekomme ich die tatsächliche Höhe eines Elements?

8

Eine einfache Zeile von html:

<div onclick="alert(this.style.height)">sometext</div>

und Alarm gibt:

Ссылка

aber es sollte wie 10px oder etw so sein.

    
rsk82 10.01.2011, 11:15
quelle

4 Antworten

17

Wenn Sie this.style.height verwenden, muss die Höhe zuerst auf dem Element angegeben worden sein, wie folgt:

%Vor%

Andernfalls sollten Sie offsetHeight oder clientHeight verwenden:

%Vor%     
DanneManne 10.01.2011, 11:27
quelle
4

Meine Vermutung ist, dass Sie keine Stilregeln haben, die die Höhe des Elements festlegen. Um die tatsächlich gerenderte Höhe eines Elements zu erhalten, verwenden Sie element.clientHeight .

    
lonesomeday 10.01.2011 11:20
quelle
1

Verwenden Sie die Eigenschaft clientHeight oder offsetHeight. Überprüfen Sie diese URL

Ссылка

    
Shahid 10.01.2011 11:27
quelle
1

object.style.whatever gibt nur Werte zurück, die mit dem style-Attribut in markup oder der style-Eigenschaft im Skript festgelegt wurden, also:

%Vor%

oder

%Vor%

Die Methode getComputedStyle ermöglicht Ihnen den Zugriff die Stileigenschaften, wie sie durch die Kaskade definiert sind (dh mit @style wie oben oder <stylesheet>...</stylesheet> oder was auch immerem Mechanismus)

BEARBEITEN: Es kann von Vorteil sein, eine etablierte browserübergreifende JS-Bibliothek zu verwenden, anstatt direkt auf diese Eigenschaft zuzugreifen und sich mit den Eigenheiten verschiedener Browser auseinanderzusetzen. Ältere Versionen von IE (zum Beispiel) unterstützen diese Methode nicht.

    
Paul Butcher 10.01.2011 11:32
quelle

Tags und Links