größe aus dem style eines div-elementes auslesen
Melchior Marconi
- javascript
hallo,
ich habe eine div-box welcher ich per css style eine breite zuweise (assoziation erfolgt über die id). wie kann ich die breite per javascript auslesen?
<html>
<head>
<style type="text/css">
[code lang=css]#box1{
position:absolute;
left:200px;
top:200px;
width:100px;
height:100px;
background:lightblue;
}
~~~</style>
</head>
<body>
<div id="box1" onclick="alert(this.style.width)">
hello
</div>
</body>
</html>
[/code]
setzen kann man sie über 'element.style.width'. dabei wird ein kindknoten 'style' erzeugt, welcher dann dieses attribut beinhaltet und der browser zeigt es korrekt an. danach kann der wert so wieder ausgelesen werden. auf die css-werte habe ich allerdings keinen zugriff. ich verwende firefox 3.0.
ich nehme an die javascript-engine ist in dieser hinsicht noch nicht fertig.
hallo,
mit firefox und firebug - dem wohl wichtigsten werkzeug zum erstellen von webseiten :-) - konnte ich folgenden workaround finden:
firebug zeigt mir in der dom-struktur an, dass es zu dem div-element eine eigenschaft namens 'offsetWidth' gibt, in welcher der von mir gewünschte wert steht. er ist allerdings read only!
also z.b.
alert(this.offsetWidth);
Die Lösung ist also auslesen per
integer = this.offsetWidth;
und setzen per
this.style.width=200+'px';
@@Melchior Marconi:
nuqneH
firebug zeigt mir in der dom-struktur an, dass es zu dem div-element eine eigenschaft namens 'offsetWidth' gibt
'offsetHeight' gibt es auch. Für andere CSS-Eigenschaften: 'getComputedStyle()'/'currentStyle' [http://forum.de.selfhtml.org/archiv/2007/7/t157244/#m1022898]
Qapla'