Problem mit CSS Positionierung und Größe in IE und FF

Status
Nicht offen für weitere Antworten.

shutdown

Erfahrenes Mitglied
Hallo an alle!

Ich hätte da mal wieder ein Problem mit CSS in verschiedenen Browsern bzw. mit CSS an sich.

Ich versuche ein Layout nach folgendem Muster zu machen:
- Oben Banner, dann horizontale Linkleiste, dann links Navigation, rechts Content, dann am unteren Rand des Bildschirms Fußleiste
- Dabei soll die Fußleiste immer am unteren Rand des Browsers zu sehen sein, egal wie groß das Fenster ist.
- Der mittlere Bereich soll sich zwischen den beiden horizontalen Leisten einfügen und bei Änderung der Fenstergröße mitwachsen oder schrumpfen.

Meine Probleme nun:
- Die Fußleiste verschwindet im FireFox bei kleinem Fenster unter der Statusleiste des Browsers. Im IE sitzt sie da wo sie hingehört - bei jeder Fenstergröße.
- Problematisch ist außerdem die prozentuale Größenangabe des mittleren Content-Divs. Zwar schrumpft dieser Bereich beim Verkleinern des Fensters, allerdings schrumpft er zu langsam, d.h. Scrollleite und evtl. Content verschwinden unter der Fußleiste.

Hier mal der Aufbau der Seite:
Code:
<span class="banner">
	<img src="banner.jpg" width="100%">
</span>

<span class="topMenu">
	<span class="topNavPoint">Nav1</span>
	<span class="topNavPoint">Nav2</span>
	<span style="text-align: right; position: absolute; right: 5px;">
		<span class="topNavPoint">Login</span>
	</span>
</span>


<span class="content">

</span>


<span class="bottomMenu">
	<span class="topNavPoint">Login</span>
</span>

Und hier das CSS:
Code:
<style type="text/css">
body {
	margin: 0px;
	height: 100%;
	overflow: hidden;
	background: #a5aaff; 
}

.banner {
	display: block;
	width: 800px;
	position: absolute;
	top: 0px;
}
.banner[class] {
	width: 804px;
}

.topMenu {
	display: block;
	height: 17px;
	width: 800px;
	background: #6699ff;
	font-size: 15px;	
	color: white;
	position: absolute;
	top: 160px;
	padding: 2px;
}

.topNavPoint {
	margin: 10px;
	vertical-align: middle;
}

.content {
	display: block;
	width: 600px;
	height: 76.5%;
	background: #e5eef5;
	position: absolute;
	top: 181px;
	left: 200px;
	overflow: scroll; /* auto; */
	overflow-x: hidden;
}
.content[class] {
	width: 604px;
}

.bottomMenu {
	display: block;
	height: 2%;
	width: 800px;
	background: #6699ff;
	font-size: 15px;	
	color: white;
	position: absolute;
	bottom: 0px;
	vertical-align: middle;
}
.bottomMenu[class] {
	width: 804px;
	height: 2.3%;
}
</style>


Das ganze gibts leider nicht im Netz zu begutachten, da ich von hier nichts raufladen kann. Aber ich denke ich hab das Problem gut beschrieben. Falls nicht - einfach fragen :-)

Vielen Dank schon mal
gruß shutdown
 
Klingt jetzt vielleicht blöd - aber könntest du mir erklären, was da jetzt den Unterschied macht?
Ich hab mir jetzt mal das StyleSheet von deinem letzten Link angesehen - und es funktioniert auch.

Aber was jetzt da letzlich für verantwortlich ist, dass es funktioniert (es liegt ja vor allem auch an der html-Definition - ist das eine Besondere?), kann ich im Vergleich zu meinem leider nicht erkennen.

Und ich möcht's doch auch verstehen :-)

Code:
.content {
	overflow:auto; 
	position:absolute; 
	z-index:1; 
	top:100px; 
	bottom:50px; 
	left:200px; 
	right:0; 	background:#eee;
}

html {
height:100%; 
max-height:100%; 
padding:0;
margin:0; 
border:0; 
background:#fff; 
font-size:76%; 
font-family:georgia, palatino linotype, times new roman, serif;
overflow: hidden; 

}

*html .content {
	top:0; 
	left:0; 
	right:0; 
	bottom:0; 
	height:100%; 
	max-height:100%; 
	width:100%; 	overflow:auto; 
	position:absolute; 
	z-index:1; 
	border-top:100px solid #fff; 
	border-bottom:50px solid #fff; 
	border-left:200px solid #fff;
}
 
Der Unterschied zu deinem Modell liegt darin, daß die einzelnen Bereiche (Header, Content und Footer) im Anzeigefenster absolut positioniert und mit unterschiedlichen Schichtpositionen (z-index) versehen sind.

Da der IE die Kombination der Positionsangaben top/bottom und left/right für ein Element nicht unterstützt, wird mittels dem Star-HTML-Hack (* html .content) dem Content-DIV an den entsprechenden Seiten ein Rahmen verpasst, der der Höhe / Breite der angrenzenden Elemente entspricht.

Diese Technik wird aber auch von Markus Kolletzky in dem empfohlenen CSS-Tutorial vorgestellt.
 
Status
Nicht offen für weitere Antworten.
Zurück