Sven: div-Größen ermitteln

Schönen Sonntagmorgen,

ich habe folgendes ("für mich derzeit unlösbares") Problem.

Ich habe einen div-Bereich angelegt, dessen Inhalt (Text) von der Länge her variabel ist. Dieser div-Bereich wird umrandet und soll mit einem Quasi-Schatten hinterlegt werden.

Das wollte ich damit erreichen, das nach Aufbau des div´s ein JavaScript abläuft und das Attribut 'height' ausliest.  In der gleichen Größe sollte dann ein zusätzlicher Div etwas versetzt als Schatten erzeugt werden. Das Ergebnis dieses Auslesens ist allerdings " " oder "undefined".

Lege ich von vornherein die Höhe des div´s fest (beispielsweise 20px) und frage nachher die Höhe nochmal ab, so liefert die Abfrage 20px, was aber definitiv nicht der Fall ist.

Weiss jemand also einen Rat, wie ich die Höhe eines variablen div-Bereiches feststelle?

Dankbar für jeden Tipp.
Sven

  1. Hi Sven,

    das Problem ist hier schon öfters aufgekommen und schon öfters gelöst worden, versuchs mal mit ner Archivsuche

    ich bin dabei auf http://forum.de.selfhtml.org/archiv/2000_3/t17783.htm#a90247 gestossen, könnte dir helfen

    oder die lässt dir (wie ich) mal die suche laufen bsw

    http://selfsuche.teamone.de/cgi-bin/such.pl?suchausdruck=div+height+ermitteln&lang=on&feld=alle&index_1=on&index_2=on&index_3=on&index_4=on&index_5=on&index_6=on&hits=100
    gruss

    Thorsten

    1. das Problem ist hier schon öfters aufgekommen und schon öfters gelöst worden, versuchs mal mit ner Archivsuche

      ich bin dabei auf http://forum.de.selfhtml.org/archiv/2000_3/t17783.htm#a90247 gestossen, könnte dir helfen

      Sehe ich das richtig, daß es demnach zum Abfragen der Dimension und Position eines Objekts _keine_ browser-übergreifende, standardmäßige Möglichkeit gibt?

      • height, width, left, top, etc. liefern ja anscheinend nur etwas, wenn's auch vorher gesetzt wurde.
      • document.all['name'].offsetHeight gibt's nur im IE.
      • document.layers['name'].clip.height gibt's nur bei Netscape.

      Das erscheint mir alles sehr unschön. Und was mache ich dann bei anderen Browsern?

      Gruß,
        soenk.e

      1. Hallo,

        Das erscheint mir alles sehr unschön. Und was mache ich dann bei anderen Browsern?

        Mozilla kennt getComputedStyle() http://www.styleassistant.de/tips/tip56.htm.

        MfG, Thomas

  2. Hallo,

    um einen Schatten-Effekt zu erreichen kannst du Tabellen verwenden. Dann brauchst du auch kein JavaScript. Das ist zwar nicht die Modernste Lösung, geht aber am einfachsten.

    MfG Dmitri

    1. Aloha!

      um einen Schatten-Effekt zu erreichen kannst du Tabellen verwenden. Dann brauchst du auch kein JavaScript. Das ist zwar nicht die Modernste Lösung, geht aber am einfachsten.

      Was mit Tabellen geht, geht mit verschachtelten Layern natürlich auch - sogar besser. Und auch vollkommen ohne Javascript.

      Spontan fällt mir "position:relative" auch noch ein (damit kriegt man versetztes Anzeigen auch hin, ohne Längenangabe aber vermutlich schwieriger - hängt vom Schatten ab).

      <div style="background-color:#000;">
      <div style="position:relative; left:-5px; top:-5px; background-color:#f00">
      Hier der Inhalt
      </div>
      </div>

      Komplizierte Schatten mit Ausfaden (wo man also eine Grafik bräuchte) könntest du durch mehrere Layer herstellen, oder tatsächlich mit Hintergrundgrafik und einer Abschlußgrafik arbeiten.

      - Sven Rautenberg