Zum Inhalt springen

Frames simulieren mit Div & Overflow


Aiun

Empfohlene Beiträge

hi,

aus diversen Gründen nutze ich auf einer meiner Seiten keine Frames, sondern ein Div-Layer mit Overflow: auto (scrollbar)

Problem: Neben diesem Div-Layer soll ein menü erscheinen.

das content-Divlayer ist position:absolute; da sonst kein overflow:auto möglich ist

das Problem das bleibt: ich möchte, das dieses Content-Div allen Platz einnimmt, der neben dem Menü bliebt. Auch wenn sich die größe des Browsers verändert.

Bisherige Lösung: Javascript. bei onload und onresize wird das Content-Div an die neue größe angepasst.

Wenn ich nun aber seiten mit einigen Bildern habe, die auf einer ISDN-Leitung einige Sekunden zu laden brauchen, dann habe ich Zeitweise nur die größe, die das Content-Div beim Start hatte, onresize greift nicht wärend des Ladevorgangs.

irgendwelche Ideen ? möglichkeiten diesen teil ohne JS umzusetzen ?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Problem: Neben diesem Div-Layer soll ein menü erscheinen.

das content-Divlayer ist position:absolute; da sonst kein overflow:auto möglich ist

das Problem das bleibt: ich möchte, das dieses Content-Div allen Platz einnimmt, der neben dem Menü bliebt. Auch wenn sich die größe des Browsers verändert.

Wieso sollte


overflow: auto;

nur bei absolut positionierten Elementen funktionieren? "auto" ist doch der Default-Wert von overflow. Hast Du mal Code für uns, oder zumindest einen Screenshot wie's aussehen soll oder so? Ich versteh nämlich nicht so ganz was Du meinst.

Gruß, Tobias

Link zu diesem Kommentar
Auf anderen Seiten teilen

ich habe ausprobiert was passiert wenn ich position:relative und overflow: auto benutze, dann habe ich Scrollbar am Browserfenster, nicht am Div-Layer.

ich möchte ein 2 Spalten Layout mit header drüber

---------------

Header

---------------

Nav | Content |

Nav | Content |

Nav | Content |

wobei der Content Scrollbar sein Soll. Das ganze mit Divs. Nav hat z.b. 200px breite. Content soll verfügbare Breite nehmen.

Vielleicht habe ich ja nur nen dummen, unsichtbaren Fehler gemacht ^^

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi Aiun!

Meinst Du so: http://www.tobias-digital.de/stuff/test/overflow.htm


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

	<head>

		<title>test</title>

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

		<style type="text/css">

		ul {

			width: 100px;

			float: left;

		}

		div {

			height: 300px;

			overflow: auto;

		}

		</style>

	</head>

	<body>

		<ul id="menu">

			<li><a href="#">Lorem</a></li>

			<li><a href="#">Ipsum</a></li>

			<li><a href="#">Dolor</a></li>

		</ul>

		<div id="content">

			<h1>Lorem Ipsum Dolor</h1>

			<p>Sed sollicitudin velit eu magna. Sed sollicitudin velit eu magna. Sed sollicitudin velit eu magna. Sed sollicitudin velit eu magna. Sed sollicitudin velit eu magna. Sed sollicitudin velit eu magna. Sed sollicitudin velit eu magna.</p>

			<p>Sed sollicitudin velit eu magna. Sed sollicitudin velit eu magna. Sed sollicitudin velit eu magna. Sed sollicitudin velit eu magna. Sed sollicitudin velit eu magna. Sed sollicitudin velit eu magna. Sed sollicitudin velit eu magna.</p>

			<p>Sed sollicitudin velit eu magna. Sed sollicitudin velit eu magna. Sed sollicitudin velit eu magna. Sed sollicitudin velit eu magna. Sed sollicitudin velit eu magna. Sed sollicitudin velit eu magna. Sed sollicitudin velit eu magna.</p>

			<p>Sed sollicitudin velit eu magna. Sed sollicitudin velit eu magna. Sed sollicitudin velit eu magna. Sed sollicitudin velit eu magna. Sed sollicitudin velit eu magna. Sed sollicitudin velit eu magna. Sed sollicitudin velit eu magna.</p>

			<p>Sed sollicitudin velit eu magna. Sed sollicitudin velit eu magna. Sed sollicitudin velit eu magna. Sed sollicitudin velit eu magna. Sed sollicitudin velit eu magna. Sed sollicitudin velit eu magna. Sed sollicitudin velit eu magna.</p>

			<p>Sed sollicitudin velit eu magna. Sed sollicitudin velit eu magna. Sed sollicitudin velit eu magna. Sed sollicitudin velit eu magna. Sed sollicitudin velit eu magna. Sed sollicitudin velit eu magna. Sed sollicitudin velit eu magna.</p>

		</div>

	</body>

</html>

Gruß, Tobias

Link zu diesem Kommentar
Auf anderen Seiten teilen

- menü 200 px

- content verfügbarer platz

- content 100% hoch

- wenn browserfenster kleiner inhalt content dann wird scrollbalken am contentDiv angezeigt

getestet IE 6, firefox


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

	<head>

		<title>test</title>

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

		<style type="text/css">

		html, body{

			height: 100%;

		}

		#menu {

			width: 200px;

			height: 100%;

			float: left;

		}

		#content {

			height: 100%;

			overflow: auto;

		}

		</style>

	</head>

	<body>

		<div id="menu">

			<ul>

				<li><a href="#">Lorem</a></li>

				<li><a href="#">Ipsum</a></li>

				<li><a href="#">Dolor</a></li>

			</ul>

		</div>

		<div id="content">

			<h1>Lorem Ipsum Dolor</h1>

			<p>Sed sollicitudin velit eu magna. Sed sollicitudin velit eu magna. Sed sollicitudin velit eu magna. Sed sollicitudin velit eu magna. Sed sollicitudin velit eu magna. Sed sollicitudin velit eu magna. Sed sollicitudin velit eu magna.</p>

			<p>Sed sollicitudin velit eu magna. Sed sollicitudin velit eu magna. Sed sollicitudin velit eu magna. Sed sollicitudin velit eu magna. Sed sollicitudin velit eu magna. Sed sollicitudin velit eu magna. Sed sollicitudin velit eu magna.</p>

			<p>Sed sollicitudin velit eu magna. Sed sollicitudin velit eu magna. Sed sollicitudin velit eu magna. Sed sollicitudin velit eu magna. Sed sollicitudin velit eu magna. Sed sollicitudin velit eu magna. Sed sollicitudin velit eu magna.</p>

			<p>Sed sollicitudin velit eu magna. Sed sollicitudin velit eu magna. Sed sollicitudin velit eu magna. Sed sollicitudin velit eu magna. Sed sollicitudin velit eu magna. Sed sollicitudin velit eu magna. Sed sollicitudin velit eu magna.</p>

			<p>Sed sollicitudin velit eu magna. Sed sollicitudin velit eu magna. Sed sollicitudin velit eu magna. Sed sollicitudin velit eu magna. Sed sollicitudin velit eu magna. Sed sollicitudin velit eu magna. Sed sollicitudin velit eu magna.</p>

			<p>Sed sollicitudin velit eu magna. Sed sollicitudin velit eu magna. Sed sollicitudin velit eu magna. Sed sollicitudin velit eu magna. Sed sollicitudin velit eu magna. Sed sollicitudin velit eu magna. Sed sollicitudin velit eu magna.</p>

		</div>

	</body>

</html>

Link zu diesem Kommentar
Auf anderen Seiten teilen

@Aiun: meinst Du so? http://www.tobias-digital.de/stuff/test/overflow.htm


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

	<head>

		<title>test</title>

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

		<style type="text/css">

    body {

      padding: 0px;

      margin: 0px;

      height: 100%;

    }

		ul {

      margin: 0px;

      padding: 0px;

			width: 100px;

			float: left;

		}

		div {

      position: absolute;

      height: 100%;

      margin: 0px 0px 0px 100px;

			overflow: auto;

		}

		</style>

	</head>

	<body>

		<ul id="menu">

			<li><a href="#">Lorem</a></li>

			<li><a href="#">Ipsum</a></li>

			<li><a href="#">Dolor</a></li>

		</ul>

		<div id="content">

			<h1>Lorem Ipsum Dolor</h1>

			<p>Sed sollicitudin velit eu magna. Sed sollicitudin velit eu magna. Sed sollicitudin velit eu magna. Sed sollicitudin velit eu magna. Sed sollicitudin velit eu magna. Sed sollicitudin velit eu magna. Sed sollicitudin velit eu magna.</p>

			<p>Sed sollicitudin velit eu magna. Sed sollicitudin velit eu magna. Sed sollicitudin velit eu magna. Sed sollicitudin velit eu magna. Sed sollicitudin velit eu magna. Sed sollicitudin velit eu magna. Sed sollicitudin velit eu magna.</p>

			<p>Sed sollicitudin velit eu magna. Sed sollicitudin velit eu magna. Sed sollicitudin velit eu magna. Sed sollicitudin velit eu magna. Sed sollicitudin velit eu magna. Sed sollicitudin velit eu magna. Sed sollicitudin velit eu magna.</p>

		</div>

	</body>

</html>

Link zu diesem Kommentar
Auf anderen Seiten teilen

hi

alle Vorschläge haben 1 Problem:

der Header wird nicht mit bedacht. Schon allein wenn ein Margin-Top wirkung annimmt, rutscht das Div-Layer nach unten und das Browserfenster bekommt eine Scrollbar um das ganze div einzunehmen.

Div height:100% nimmt die höhe vom Browserfenster, nicht die verfügbare höhe (FF)

das heißt: schiebe ich es um 200px nach unten (für den header), habe ich auch 200px überstand unten aus dem Fenster :(

Link zu diesem Kommentar
Auf anderen Seiten teilen

ich möchte eine Seite, die ich normalerweise mit Frames machen würde, mit einem scrollbaren Div-Layer lösen. "warum" ist erstmal egal :)

das bedeutet, ich habe links ein Menü, oben einen Header und den Content-Bereich.

Der Content-Bereich soll allen verfügbaren Platz einnehmen und dann scrollbar werden wenn der inhalt zu groß für diesen Bereich wird.

bisher löse ich das mit einem Javascript das die feste breite & höhe meines Div-Layers ändert, wenn die Fenstergröße verändert wird.

Für mich klingt es wie ein Fehler, wenn ein Div-Layer bei 100% die größe des Fensters nimmt. Wofür brauche ich denn eine % Angabe die über mein Fenster hinausgeht *verwirrtgugt*

habe gerade festgestellt, das ein <table style="height:100%"> auch nur bis HTML4-Trans funktioniert *kopfschüttel*

Link zu diesem Kommentar
Auf anderen Seiten teilen

Der Content-Bereich soll allen verfügbaren Platz einnehmen und dann scrollbar werden wenn der inhalt zu groß für diesen Bereich wird.

Aber das passiert doch automatisch, wenn der Contentbereich größer wird als das Browserfenster, erscheint rechts eine Srollleiste. :confused:

Gruß, Tobias

PS: Wenn Du Frames einsetzen möchtest, dann setz doch Frames ein. Ich finde es nicht grade guten Stil wenn man mit einer Technik eine andere Technik neu erfinden will.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Aber das passiert doch automatisch, wenn der Contentbereich größer wird als das Browserfenster, erscheint rechts eine Srollleiste

ich denke dass er aber nur den contentbereich scrollen will. wenn der, ohne dass er in einem div mit fester größe untergebracht ist, größer als das browserfenster wird, dann scrollt der scrollbalken ja das gesamte fenster und somit is dann der header nicht mehr sichtbar.

beim rest stimme ich tobias-digital zu

Link zu diesem Kommentar
Auf anderen Seiten teilen

hm, verstehe, aber da würde sich imho "position: fixed;" für den header anbieten. "position: fixed;" kann der IE aber nicht, ergo, wenn das Layout tatsächlich genau so und nicht anders umgesetzt werden soll bleibt IMHO nur der Weg über Javascript oder tatsächlich Framesets, denn dafür wurde es unter anderem erfunden.

Gruß, Tobias

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi,

Naja er such eine Möglichkeit, einen Scrollbaren Inhalt zu haben (In diesem Fall macht das der Browser) und einen Header der oben stehen bleibt.

Er kann den Inhalt scrollen und der Header bleibt absolut oben am Bild stehen...

ist doch der Gleiche Effekt.. oder sehe ich das falsch?

Gruß,

Markus

Link zu diesem Kommentar
Auf anderen Seiten teilen

@Aiun:

Hast du es dir in etwa so Beispiel vorgestellt? (Verkleinere mal das Browserfenster)

Hier ist e möglich nur den Content zu scrollen und alles ist rein CSS basiert. Das ganze habe ich vor einiger Zeit mal gemacht. Schau dir den Quelltext mal dazu an und falls du noch Fragen dazu hast melde dich ruhig bei mir (ich hoffe ich weiß dann noch, was ich damals so geschrieben habe)

Gruss

Markus

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...