Torsten: div-container Höhe dynamisch anpassen

Hallo Forum,

Ich versuche zwei div-Container dessen Höhe dynamisch anzupassen. Die Höhe des einen div-Containers muss sich synchron des anderen div-Containers dynamisch anpassen. Ich weiß nicht wie ich das anstellen soll, vielleicht kann mir jemand dabei helfen?

mein Layout hat 4 div-Container(Box-Modell).
Code:
  div.top {
    width:900px;
    height:50px;
    background-color:blue;
  }
  div.nav {
    width:148px;
    float:left;
    text-align:left;
    background-color:blue;
    border-left:1px solid black;
    border-right:1px solid black;
  }
  div.content {
    width:743px;
    float:right;
    margin-top:5px;
    border:1px solid black;
  }
  div.bottom {
    width:900px;
    height:50px;
    clear:left;
    background-color:blue;
  }
  div.center {
    width:900px;
    margin:0px auto;
    text-align:center;
    margin-top:25px;
  }

die Höhe von div.content soll sich dynamisch des Inhaltes anpassen, dass ist soweit kein Problem. Nun sollte aber auch div.nav die selbe Höhe besitzen wie div.content. Würde gerne auf JS verzichten.

Hier noch mein HTML-Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
...
<body>
<div class="center">
  <div class="top"></div>
    <div class="nav">button1<br>button2<br>
      button3<br>button4<br>
      button5<br>button6<br>
      button7<br>button8<br>button9
    </div>
    <div class="content">
      a<br>c<br>d<br>c<br>d<br>c<br>d<br>t<br>g<br>h<br>
    </div>
    <div class="bottom"></div>
</div>
</body>

Mein Vorhaben hat spezielle Gründe bei einem bereits bestehenden Projekt, deshalb würde es mich freuen mir davon nicht abzuraten, es sei den es ist nicht konform.

Gruß
Torsten

  1. Hi,

    Nun sollte aber auch div.nav die selbe Höhe besitzen wie div.content. Würde gerne auf JS verzichten.

    das geht aber nicht. Du könntest lediglich einen optischen Effekt simulieren, z.B. über die Verwendung eines Hintergrundbildes.

    freundliche Grüße
    Ingo

    1. Hi Ingo,

      Nun sollte aber auch div.nav die selbe Höhe besitzen wie div.content. Würde gerne auf JS verzichten.
      das geht aber nicht. Du könntest lediglich einen optischen Effekt simulieren, z.B. über die Verwendung eines Hintergrundbildes.

      ok, hatte mir schon gedacht das ich ohne JS nicht auskommen werde, schade eigentlich. Mit einem Beispielcode wäre mir sehr geholfen, oder ein Tipp wie ich sowas angehen kann.

      Gruß
      Torsten

      1. Hi Torsten,

        Mit einem Beispielcode wäre mir sehr geholfen, oder ein Tipp wie ich sowas angehen kann.

        Die Höhe beider Elemte bekommst du mit:
        getElementById("id").offsetHeight;

        vergleichst beide mit: >

        und setzt die jeweils andere Höhe über:
        getElementById("id").style.height

        Etwa so. Wobei natürlich noch entsprechende Prüfungen auf die verwendeten Methoden/Eignschaften eingebaut werden müssen:

        navi=window.document.getElementById("navi");
            inhalt=window.document.getElementById("inhalt");

        if(inhalt.offsetHeight > navi.offsetHeight)
                navi.style.height=inhalt.offsetHeight+"px";
            else
                ...

        Grüße,

        Jochen

        --
        Heute schon gescribbelt?
        Scribbleboard
        1. Hi Jochen,

          danke dir!

          Gruß
          Torsten

  2. Hallo Torsten,

    Ich versuche zwei div-Container dessen Höhe dynamisch anzupassen. Die Höhe des einen div-Containers muss sich synchron des anderen div-Containers dynamisch anpassen.

    Wenn du sicherstellen kannst, dass div.content immer "höher" ist als div.nav bist du doch schon auf dem richtigen Weg. 2, 3 winzige Änderungen und es klappt.

    div.nav {
        width:891px;
      }

    und den "content" mit "nav" verschachteln

    <div class="nav">
        <div class="content">
          a<br>c<br>d<br>c<br>d<br>c<br>d<br>t<br>g<br>h<br>
        </div>
      button1<br>button2<br>
      ...
      </div>

    HTH

    Jochen

    --
    Heute schon gescribbelt?
    Scribbleboard
    1. Hi,

      Ich versuche zwei div-Container dessen Höhe dynamisch anzupassen. Die Höhe des einen div-Containers muss sich synchron des anderen div-Containers dynamisch anpassen.

      Wenn du sicherstellen kannst, dass div.content immer "höher" ist als div.nav bist du doch schon auf dem richtigen Weg. 2, 3 winzige Änderungen und es klappt.

      div.nav {
          width:891px;
        }

      und den "content" mit "nav" verschachteln

      <div class="nav">
          <div class="content">
            a<br>c<br>d<br>c<br>d<br>c<br>d<br>t<br>g<br>h<br>
          </div>
        button1<br>button2<br>
        ...
        </div>

      ne das bringt mir nix, danke aber für die Hilfe!

      Gruß
      Torsten