WebFix: Breite eines DIVs mitsamt SubDIVs ermitteln

Hallo!

Folgendes Problem: Normalerweise läßt sich die Breite eines
DIVs im IE einfach mit clientWidth ermitteln. Sollte es jedoch ein SubDIV z.B. in der Form

<div ...>
  <div ... >
  </div>
</div>

geben, liefert diese Eigenschaft nur die Breite des Elternelements;
das Kindelement wird nicht berücksichtigt.
Gibt es eine einfache Möglichkeit die Breite u. Höhe der Gesamtstruktur zu ermitteln oder ist das nur durch ein rekursives durchsuchen aller Kindelemente möglich? Gibt es da eine vorgefertigte Lösung?

Eine Lösung muß nur auf dem IE funktionieren, da es um eine Applikation die IE hostet geht.

Vielen Dank schon im Vorraus!

Gruß, WebFix

  1. Hallo,

    Folgendes Problem: Normalerweise läßt sich die Breite eines
    DIVs im IE einfach mit clientWidth ermitteln.

    Komisch, sowas finde ich nirgends in SelfHTML, bei mir steht nur OffsetWidth.

    Gibt es eine einfache Möglichkeit die Breite u. Höhe der Gesamtstruktur zu ermitteln oder ist das nur durch ein rekursives durchsuchen aller Kindelemente möglich? Gibt es da eine vorgefertigte Lösung?

    Welche Breite willst du von wo aus wissen? Also: Willst du wissen, wie breit alles ist? Dann musst du eben das OffsetWidth von diesem herausfinden.

    <div id="oben">
      <div>
        <div>
          <div>
         ...

    document.all.oben.offsetWidth bringt's

    Eine Lösung muß nur auf dem IE funktionieren, da es um eine Applikation die IE hostet geht.

    hta oder chm 8] ?

    WauWau

    1. Hallo!
      Erstmal Danke für die Antwort!
      clientWidth is IE-spezifisch. (siehe MSDN)
      Dein Vorschlag ist natürlich naheliegend. So hatte ich das zu Beginn
      auch versucht. Funktioniert leider aber nicht. offsetWidth gibt immer nur die Breite des Elternelements zurück (also z.B. 0 obwohl ein Unterelement mit der Breite 12 und Textinhalt existiert)
      Viellciht hätte ich noch erwähnen sollen, daß auch das Unterelement absolut positioniert ist. (Falls das einen Unterschied macht)

      Noch eine Idee?
      Die verwendete IE Version ist 6.

      WebFix

      1. Hallo.

        Erstmal Danke für die Antwort!
        clientWidth is IE-spezifisch. (siehe MSDN)

        richtig, wie offsetWidth auch.

        Dein Vorschlag ist natürlich naheliegend. So hatte ich das zu Beginn
        auch versucht. Funktioniert leider aber nicht. offsetWidth gibt immer nur die Breite des Elternelements zurück (also z.B. 0 obwohl ein Unterelement mit der Breite 12 und Textinhalt existiert)

        komisch.

        Viellciht hätte ich noch erwähnen sollen, daß auch das Unterelement absolut positioniert ist. (Falls das einen Unterschied macht)

        denke schon.

        Die verwendete IE Version ist 6.

        für was jetzt eigentlich?

        WauWau

        1. Hallo!

          Scheinbar gibt es für dieses Problem keine einfache Lösung.
          Siehe Frage zu Rahmen um verschachtelte DIVs... ;-)
          http://forum.de.selfhtml.org/?t=72399&m=417037
          Die Subelemente werden wohl durch die absolute Positionierung
          "aus dem Textfluß gebrochen". D.h. ich muß per DOM-Bäumchen die Kindelemente rekursiv durchsuchen um die Gesamtbreite zu ermitteln.
          Naja, wenns sein muß...