Raimund Jacob: Breite / Hoehe von «div style=".."» definierten Objekten

Hallo!

Kann mir jemand sagen, ob und wenn ja man wie die
Hoehe / Breite von den Dingern rauskriegt, die man in
<div style="..."> tags anlegt.

Position kann ich lesen und schreiben mit document.all["objektname"].(lefttop) bzw. document.layers["objektname"].(lefttop). Die .width bzw. .height attribute gibt es nicht.

Vorschlaege ? Ein 'geht nicht' wuerde mir auch reichen.

Danke schonmal

  1. Hi Raimund,

    Die .width bzw. .height attribute gibt es nicht.

    Wenn du HEIGHT und WIDTH-Attribute gesetzt hast in deiner Seite, dann gibt es die auch, sonst nicht. Teste mal folgenden Code für den IE.

    Gruß,
    UlfL

    <html>
    <head>
    <title>Untitled Document</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    </head>

    <body bgcolor="#FFFFFF">

    <div id="Layer1" style="position:absolute; left:27px; top:30px; width:144px; height:123px; z-index:1"></div>
    <script>
    alert(document.all.Layer1.style.height);
    </script>
    </body>
    </html>

    1. Hallo!

      Die .width bzw. .height attribute gibt es nicht.

      Wenn du HEIGHT und WIDTH-Attribute gesetzt hast in deiner Seite, dann gibt es die auch, sonst nicht. Teste mal folgenden Code für den IE.

      Naja, ich habe eine Funktion, die sieht so aus:
      function ob_get_height(ob) {
          if ( n && document.layers[ob] ) {
      return document.layers[ob].height;
          }
          if ( ie && document.all[ob] ) {
      return parseInt(document.all[ob].width);
          }
          return 0;
      }

      und die liefert 'undefined' in beiden browsern (bzw. NaN).
      die div-definition enthaelt angaben fuer width und height.

      ideen ?

      1. OK, jetzt hab ich es.

        Hab inzwischen dann doch den richten Teil im selfhtml gefunden...

        Meine Funktion sieht jetzt so aus:

        function ob_get_height(ob) {
            if ( n && document.layers[ob] ) {
        return document.layers[ob].clip.height;
            }
            if ( ie && document.all[ob] ) {
        return parseInt(document.all[ob].style.height);
            }
            return 0;
        }

        Nachteil ist natuerlich, dass im Netscape nur der sichtbare
        teil des objektes geliefert wird, aber fuer mich ist das OK.

    2. Hallo nochmal!

      Hoppala... ich hate bei mir in der IE funktion das .style. vergessen...
      Also im IE geht es jetzt... fehlt noch der netscape. Wie kommt man da an die width und height werte ?

      1. Hi Raimund,

        » Also im IE geht es jetzt... fehlt noch der netscape. Wie kommt man da an die width und height werte ?

        So weit ich weiss hat man kein direkten Zugriff auf HEIGHT und WIDTH eines Layers in Netscape. Da muss du wohl mit festen Breiten arbeiten. Du kannst höchstens das Layer ein CLIP versehen (schau mal in der Doku). Dieser lässt sich abfragen und ändern. Klappt aber nicht so gut, wenn das Layer ein Inhalt hat.

        Gruß,
        UlfL