Zum Inhalt springen

Div-Overflow:auto + Höhe=100% ?


slomoman

Empfohlene Beiträge

Ich will meine Seite in 3 übereinanderliegende Bereiche teilen, von denen die oberen zwei eine Feste Größe haben und der untere unterschiedlich hoch sein kann.

Wenn Scrollbars nötig sind, sollen die oberen 2 Bereiche stehen bleiben.

Da ich keine FRAMES verwenden will, muss ich es mit DIV style="overflow:auto;" machen, oder?

Ich habe eine Lösung gefunden, die mit dem IE geht, aber nicht mit NN. Hat jemand eine Browserübergreifende Lösug.

Für den, den's interessiert, hier meine bisherige Lösung:


<table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse" width="100%" height="100%">

  <tr>

    <td width="100%" height="45" valign="top">zeile 1</tr>

  <tr>

    <td width="100%" height="45" valign="top">zeile 2<tr>  

     <td width="100%" valign="top"> 

     <div style="height:100%;overflow:auto;">

       Hier der dynamisch hohe Bereich:

       1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>

       1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>Ende

     </div>

  </tr>

</table>

Link zu diesem Kommentar
Auf anderen Seiten teilen

Variante 1: Position: fixed

Problem: kann IE nicht richtig

Variante 2: Div mit overflow: auto;

Problem:

geht nur bei position: absolute/fixed

dann würde höhe 100% bedeuten, 100% vom Dokument, nicht vom 'verbleibenen' Fenster

Lösung: Javascript (bei onload und onresize die soll-größe des Divs ermitteln)

Deine Variante ... hmmm mal ausprobieren.

Welchen HTML-Standard willst du benutzen ? (oder Quirksmode ?)

NN welcher Version ?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Variante 1: Position: fixed

Problem: kann IE nicht richtig

Kann man mit position:fixed auch irgendwie eine scrollbar realisieren?

Variante 2: Div mit overflow: auto;

Problem:

geht nur bei position: absolute/fixed

dann würde höhe 100% bedeuten, 100% vom Dokument, nicht vom 'verbleibenen' Fenster

Lösung: Javascript (bei onload und onresize die soll-größe des Divs ermitteln)

Also bleibt insgesamt nur eine Variante mit Javascript, bei der man die aktuelle Größe des Fensters ermitteln und für die Höhe weiterverarbeitet?

Deine Variante ... hmmm mal ausprobieren.

Welchen HTML-Standard willst du benutzen ? (oder Quirksmode ?)

egal.

NN welcher Version ?

NN 7.0

Link zu diesem Kommentar
Auf anderen Seiten teilen

naja, du solltest dir schon festlegen welchen HTML-Standard. es kann sein das dein konstrukt in xhtml nicht funktioniert, in 4.01 trans. aber schon.

Wenn du gar kein Standard angibst, dann ist klar das der Quirksmode browserabhängig abweichungen hat.

es gibt eine Art 'Patch' (Javascript) der dem IE ein position: fixed beibringt. Aber bisher habe ich gesehen, es ist angenehmer die Fenstergröße mit JS zu ermitteln und dann die Div-Layer zu zu weisen.

Hierbei aufpassen, Browser haben verschiedene Befehle für die fenstergröße.

Javascript:


      var x,y;

      if (self.innerHeight) // all except Explorer

      {

      	x = self.innerWidth;

      	y = self.innerHeight;

      }

      else if (document.documentElement && document.documentElement.clientHeight)

      	// Explorer 6 Strict Mode

      {

      	x = document.documentElement.clientWidth;

      	y = document.documentElement.clientHeight;

      }

      else if (document.body) // other Explorers

      {

      	x = document.body.clientWidth;

      	y = document.body.clientHeight;

      }

Link zu diesem Kommentar
Auf anderen Seiten teilen

Meine Erfahrungen sagen mir, dass man einzelnen Zellen eine festen Größe zuordnen kann. Sobald der Inhalt jedoch größer als die Vorgaben sind, wachsen die Zellen mit! Probleme tretten einzig und alleine bei Hintergrundbildern auf.

Habs ebend nochmal mit dem IE und Firefox getestet. ^^

mfg

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 2 Monate später...


      var x,y;

      if (self.innerHeight) // all except Explorer

      {

      	x = self.innerWidth;

      	y = self.innerHeight;

      }

      else if (document.documentElement && document.documentElement.clientHeight)

      	// Explorer 6 Strict Mode

      {

      	x = document.documentElement.clientWidth;

      	y = document.documentElement.clientHeight;

      }

      else if (document.body) // other Explorers

      {

      	x = document.body.clientWidth;

      	y = document.body.clientHeight;

      }

Nochmal eine Nachfrage zu dem hilfreichen Script, mit dem man die aktuelle Höhe des nutzbaren Bereichs auf dem Bildschirm ermitteln kann.

Meine Seite wird von einer anderen Seite in einem IFRAME angezeigt, das eine bestimmte Höhe hat.

clientHeight ermittelt nur die Höhe des gesamten Fensters. Gibt es auch ne Möglichkeit, die Höhe meiner Seite in dem IFRAME, d.h. also die Höhe des IFRAMES selber zu ermitteln?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...