CSS Seitengestaltung

Hallo,

also ich habe folgendes Problem. Ich habe mich etwas im Internet umgeschaut nach einer Vorlage für einen Style und wie das funktioniert.
Nun bin ich auf folgendes gestoßen und habe schon etwas daran rumgefummelt: wingi.bplaced.net/css/test.htm

Ich weiß nun jedoch nicht genau wie man das macht, dass das Navi und der Header stehen bleibe, der Footer unter dem Text ist und nicht der Text hinter dem Header und dem Footer durchscrollt. Das war jetzt recht komplex aber ich hoffe jemand versteht wie ich das meine.

Hier mal der Quelltext vieleicht nicht so ganz sauber aber bis hierhin hats geklappt.

Dankeschön!

test.htm


<html>
<head>

<link rel="stylesheet" type="text/css" href="test.css">

</head>
<body>
<div id="wrap">
	<div id="header">

		<h1>Herzlich Wilkommen</h1>
		
	</div>
	<div id="content-wrap">
		<div id="content">
			<p class="info">Hier stehen diverse Info's.<BR>
                                        Je nachdem wie viel hier steht desto länger wird die Box die Breite bleibt jedoch erhalten.!</p>

			


                        <p> Hier ist der eingentliche Inhalt der Seite. Hier kann so viel hin wie will!
<BR>e<BR>e<BR>e<BR>e<BR>e<BR>e<BR>e<BR>e<BR>e<BR>e<BR>e<BR>e<BR>e<BR>e<BR>e<BR>e<BR>e<BR>e<BR>e<BR>e<BR>e<BR>e<BR>e<BR>e<BR>e<BR>e<BR>e<BR>e<BR>e<BR>e<BR>e
<BR>e<BR>e<BR>e<BR>e<BR>e<BR>e<BR>e<BR>e<BR>e<BR>e<BR>e</p>

			<p>Letzte Zeile.</p>
		</div>
	</div>
	<div id="footer">
<div id="labfooter">
	<p>Hier ist der Footer hier kommt das Copyright hin!</p>

</div>
<div id="navi">

	<p>Hier ist das Navi!</p>

</div>
	</div>
</div>
</body>

Hier die test.css

head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
	<title>CSS Frames, version 2: Example 1, full-width | 456 Berea Street</title>
	<style type="text/css" media="screen,print">
html,
body {
	margin:0;
	padding:0;
	height:100%; /* 100 % height */
}
html>body #wrap {height:100%;} /* 100 % height */
#header {

     	height:5em;
        top:10;
        left:215;
        right:15;
} 
html>body #header {
	position:fixed;
	z-index:10; /* Prevent certain problems with form controls */
}



html>body #navi {
	position:fixed;
	width:200;
        height:500;
        left:0;
        top:10;
        z-index:10; /* Prevent certain problems with form controls */
}



html>body #content-wrap {height:100%;} /* 100 % height */
html>body #content {padding:6em 1em 0em 215;}  /* 6em = height of #header and #footer + 1em, 1em = give the content some breathing space */
             

#footer {
	height:5em;
}
html>body #footer {
	position:fixed;
	bottom:10;
	left:215;
        right:5;
        z-index:10; /* Prevent certain problems with form controls */
}



/* Styling to make this demo page look just a little bit better */
html,
body {
	color:#333;
	background:#ffefd5 url(bg.gif) fixed; /* HIER KANN MAN DIE HINTERGRUNDFARBE ÄNDERN UND EIN BILD EINFÜGEN */
}
body {font:76%/1.5 "Lucida Grande", "Lucida Sans Unicode", Arial, Helvetica, sans-serif;}
h1,
h2 {
	margin:0.25em 0;
	font:normal 1.5em/1.1 "Century Gothic","Trebuchet MS",Helvetica,Arial,Geneva,sans-serif;
	text-align:center;
	letter-spacing:1px;
}
p {margin:1em 0;}
.info {
	position:relative;
	width:40em;
	margin:0 auto;
	padding:0.5em;
	border:2px solid #999;
	background:#eee8aa;
}
a:link,
a:visited {
	border-bottom:1px dotted;
	color:#AE4F0C;
	font-weight:bold;
	text-decoration:none;
}
a:focus,
a:hover {
	border-bottom-style:solid;
	color:#D03900;
}
#header,
#navi,
#footer {
	color:#111;
	background:#ddd;
	text-align:center;
}
#content-wrap,
#content {background:#f8f8f3 url(weiß ich nicht.gif);}
#footer a {color:#111;}
	</style>
<!--[if lt IE 7]>
	<link rel="stylesheet" href="ie.css" type="text/css">
<![endif]-->
</head>

Mach die Bereiche entsprechend grösser, und gebe ihnen da, wo der Text aktuell sichtbar ist aber nicht sein soll, einen Hintergrund.

Wie so oft im Leben gibt es da einige mehr oder weniger gute
Lösungen des Problems.

Etwa könntest du alles absolut positionieren, also Kopf, Fuß,
Menü und Inhalt, so daß für alle Höhe und Breite festliegen und
dann jeweils overflow: auto angeben.

Übrigens braucht man bei Längenangaben in CSS immer eine
Einheit, wenn die Länge von 0 verschieden ist, sowas wie
left:215 oder width: 500 ist also Unfug.
Für Elemente, die Text enthalten, verwendet man am besten
Einheiten wie em oder ex, wenn man da etwa die Breite
festlegen will.

Danke erstmal das hat mir jedoch noch nicht so richtig deholfen. Ich möchte ja das der Bereich variabel bleibt da ich darin ja unterschiedliche Seiten aufrufen möchte.

Hoffe auf weitere Antworten.

LG Nikolas

Ja was denn nun, soll der Kopf nun oben hin und der Fuß unten
oder nicht - und relativ zum Anzeigebereich oder zum
Dokumentinhalt?

Im ersteren Falle ist meine Variante genau richtig und
Bei Überlänge bekommt dann eben der Inhalt einen Rollbalken,
wenn alles korrekt angegeben ist.

Im zweiten Falle solltest du mit der Positionierung sehr vorsichtig
umgehen. Etwa könntest du da nur das Menü links positionieren,
bei body ein entsprechendes margin-left angeben und dann
eben den ganzen Rest unpositioniert fließen lassen, dann
paßt sich das automatisch an.

Hallo nochmal

ich habe von dem ganzen CSS leider noch nicht so viel Ahnung hier mal ein Beispiel damit man sich das besser vorstellen kann.
de.wikipedia.org/wiki/Elefant

Das Navi und der Header sind oben und der Footer hängt sich automatisch untendran egal wie lang der Text ist.
Falls es so mit der ersten Erklärung funktioniert könnte es mir vieleicht noch jemand etwas besser erklären.

Danke und Gruß Nikolas

Ich habe jetzt nicht geguckt, wie die das bei wikipedia machen,
aber das ist recht einfach stabil hinzubekommen.

Die Basiskonstruktion zu deinem Quelltext sieht so aus:

div#navi
{
position: absolute;
top:0;
left:0;
width: 13em
}

html
{
margin:0;
padding: 0;
}

body
{
margin: 0.5em;
margin-left: 13.5em;
}

Viel mehr brauchst du eigentlich nicht anzugeben, mal
abgesehen von Farben und Rändern, das ordnet sich dann
von allein passend an.

Dankeschön an alle besonders an hoffmann.
So macht das Spaß!!! :wink: :wink: