HTML Divs, relative und absolute angaben

Rain

Lieutenant
Registriert
Mai 2003
Beiträge
704
Hallo,

nachdem ich sehr oft nun schon gelesen habe, dass tabellenlayouts als unelegant und veraltet gelten, fuchse ich mich gerade ein wenig in html - layouts mit div-containern und css rein und ehrlich gesagt, mich nerven die teile irgendwie ein wenig, was wohl aber daran liegt, dass ich in der materie noch nicht den vollen durchblick habe.

so halbwegs funktionierts aber mittlerweile, nur habe ich eine frage zu absoluten und relativen angaben. hier ist erst einmal der code:

HTML:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
       "http://www.w3.org/TR/html4/loose.dtd">


<html>
<head>

<style type="text/css" media="screen"> 
<!-- 

.border {border-style: solid;}

 html, body { 
width: 100%;
height: 100%;
margin: 0;
padding: 0;
}
--> 
</style>


</head>
<body>

<div style="width: 100%; height: 100%;">

<div style="width: 100%; height: 100px;"> banner</div>

<div style="height: 100%; width: 100%;">
<div style="width: 100px; float: left;">links </div>


<div style=" width: 90%; height: 100%; float: right; background-color: gray;">

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

gefordert sein soll ein layout mit einem banner oben 100px hoch und 100% weit, ein menü links 100px breit und 100% hoch und neben den menü der inhalt mit dem rest an verfügbarer breite und höhe des monitors. keine scrollbalken!

definiere ich die höhe und breite des banners bzw. menüs relativ (10% zB) und passe den rest an (90%) klappts wunderbar. nur was mache ich in dem fall, wenn die angaben absolut bei 100 px liegen?? ist die menübreite 100px und die inhaltsbreite 100%, dann ist die inhaltsbreite 100% bildschirmbreite weit und ich hab scrollbalken. sowas wie ne css-rechnung width: 100% - 100px; -> das wäre gut in dem fall.

ich bitte um hilfe
 
Naja, das was du da willst, könnte man z.B. mit absoluter Positionierung hinkriegen:

HTML:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
       "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
	<style type="text/css" media="screen"> 
	<!-- 
	body {
		background-color:gray;
		margin:0;
		padding:0;
	}
	--> 
	</style>
</head>
<body>
	<div style="position:absolute; z-index:10; top:0; left:0; height:100px; width:100%; background-color:blue;">banner</div>

	<div style="position:absolute; z-index:5; top:0; left:0; height:100%; width:100px; background-color:green;">
		<div style="padding-top:100px;">links</div>
	</div>

	<div style="padding:100px 0 0 100px;">Inhalt</div>
</body>
</html>
Je nachdem, wie dein Ergebnis aussehen soll, gibt es aber sicherlich bessere Wege.
 
danke für den quelltext, so funktionierts. das design meiner alten hp (frames) ist in der art, deswegen wollte ich es einfach mal nachbauen mit divs ... irgendwie ist mir diese position:.... - angabe immer noch etwas suspekt, muss ich nochma schauen
 
Das Problem bei "absoluter/relativer" Positionierung ist einfahc, das Anfänger besonders stark daran verzweifeln, weil es suggeriert man hätte genau das was man will und kennt die Eigenheiten nicht. Denn was du eigentlich willst sind "Faux Columns" und "floatende Elemente", denn damit ist ein Layout wesentlich "robuster" gegenüber Browser, Benutzereinstellungen und Schriftgrößen.

Als Tabellenlayoutumsteiger solltest du dir eine systematische Lektüre besorgen z.B.: Peter Müllers "Little Boxes 1 & 2" oder dies hier: http://jendryschik.de/wsdev/einfuehrung/
 
Zurück
Oben