footer helemaal onderaan de pagina

Status
Niet open voor verdere reacties.

The_Robin

Gebruiker
Lid geworden
11 nov 2008
Berichten
961
ehm als ik het zo snel even bekijk dan zie ik dat je css niet geheel lijkt te kloppen in Google Chrome:
HTML:
#footer-wrap {
	background: url(images/footer.gif) repeat-x left bottom;
	background-position: bottom;
	height: 60px;
	bottom: 0;
	margin-top: -15px;
	display: table;
	width: 100%;
}
Display moet block dus:
HTML:
display: block;

Hierdoor lijkt het op een resolutie van 1024 bij 768 wel goed te gaan. Met footer die over hele pagina gaat.

en zet in css van body:
HTML:
bottom: 0px;
en kijk hoe dat gaat.
Je kunt met Google Chrome een element inspecteren en aanpassen voor jezelf. Probeer het eens. Rechtermuisknop op site en element inspecteren. Als je dan met je muis over div's gaat zie je wat. Bij body zie ik namelijk dat het niet de hele pagina omvangt. Het ligt dus aan de body.
 
Laatst bewerkt:
Ik heb hier gisteren ook uitgebreid naar gekeken, maar het lukte me niet. Dus dacht ik: even laten rusten, misschien vindt iemand anders het.
Om een of andere reden bleef de footer gewoon niet staan.
Ik heb die hele display: table over het hoofd gezien!
Als je dat table hebt veranderd en het lukt nog niet, moet je 't maar even laten weten.
 
HTML:
#footer-wrap{
background: url(http://test.automaticmedia.nl/123portfolio/images/footer.gif) repeat-x 100%;
bottom: 0px;
display: block;
height: 74px;
margin-top: -29px;
width: 100%;
}

#footer{
color: white;
font-family: Arial, Helvetica, sans-serif;
font-size: 12px;
margin: 0px auto;
padding-top: 29px;
width: 870px;
}
#white{
background: white;
border-color: initial;
border: thin;
float: left;
height: 100%;
padding-bottom: 14px;
padding-left: 5px;
padding-right: 3px;
width: 864px;
}

Met deze code krijg ik alles goed gepositioneerd maar dit is misschien niet wat je zoekt.
Jij zoekt namelijk iets dat op elke resolutie zich over de hele pagina strekt niet?
 
Het is de bedoeling dat het witte gedeelte tot aan de footer komt, de footer moet helemaal onderaan komen :D
Kan dat met jouw code?
 
Omdat je nog geen oplossing hebt, reageer ik toch maar.
Eerst 't slechte nieuws en dan 'n mogelijke oplossing.
Ik heb er nog 'ns 'n tijd naar gekeken, maar dat gaat heel erg veel tijd kosten, misschien wel 'n volle dag.
Onderstaande is niet rottig bedoeld, maar mogelijk heb je er iets aan om te verbeteren.
De code is heel onoverzichtelijk, omdat je op heel veel plaatsen 'n <br> hebt gebruikt in plaats van 'n <p>, en met heel korte regels werkt. Daardoor wordt de pagina met code heel onoverzichtelijk lang.
Je springt niet netjes in, zoals hieronder:
HTML:
<div>
    <div>
         <p></p>
    </div>
</div>
Los daarvan gebruik je toch nog vrij veel divs. 'n Footer, snap ik. Maar wat doet 'n wrap-footer?
Dan staat er in je css bijvoorbeeld op allerlei plaatsen 'n hoogte, op veel meer plaatsen dan nodig is. Zoiets kan van alles verstoren. En ook je css is niet echt heel overzichtelijk. De volgorde loopt niet gelijk op met die van de html, heel veel lege regels waardoor 't ook weer onoverzichtelijk lang wordt.

Al die dingen bij elkaar maken 't heel onoverzichtelijk om aan te werken. En eigenlijk moet je ook beginnen met zo'n witte ondergrond tot aan de onderkant en 'n footer onderaan, en pas daarna de details gaan invullen.
Nogmaals: niet bedoeld om te katten, maar om uit te leggen waarom het - in ieder geval voor mij - heel veel tijd zou gaan kosten.

Nu het (hopelijk) goede deel. Ik heb 'n lay-out in elkaar gestampt, die mogelijk bruikbaar is voor jou. Alleen moet je 'm zelf invullen.
Je vraagt in feite twee verschillende dingen: de witte ondergrond moet tot aan de footer lopen, en de footer moet altijd onderaan het scherm staan.
In deze lay-out is dat zo. En als er meer inhoud is dan op het scherm past, schuift de footer omlaag. Dus hij komt nooit over de tekst en zo te staan.
De kolommen links en rechts heb ik even 'n grijze achtergrond gegeven.

De bedoeling is dat je in bijvoorbeeld #links stap-voor-stap jouw dingen gaat zetten. En de breedte aanpast aan wat jij wilt en zo. En dan bij elke stap controleren of 't goed gaat, echt voortdurend. In zoveel mogelijk browsers.
En dat dan herhalen voor de middelste kolom, rechts, header en footer.

#container is minimaal schermvullend. De footer wordt daaronderin geparkeerd, en staat dus altijd onderaan het scherm.
#container-binnen is nodig om te zorgen dat de footer nooit over de tekst en zo heen komt te staan. Daar is de overflow: hidden voor nodig, en de padding-bottom.
#links, #content en #rechts worden daarbinnen naar links gefloat. De breedte en padding en zo hiervan moet je natuurlijk aanpassen.

Voor Internet Explorer 6 is wat aparte code nodig. Die staat in een 'conditional comment', die alleen door IE 6 wordt gelezen.

Nou, hier komt de code. Succes!

HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
	<title>Footer altijd onderaan scherm of lager ('sticky footer') - voorbeeld</title>
	<style type="text/css">
		html {margin: 0; padding: 0; height: 100%;}
		body {margin: 0; padding: 0; height: 100%; background: #ff9;}
		#container {position: relative; width: 800px; min-height: 100%; margin: 0 auto; background: white;}
		#container-binnen {padding-bottom: 10em; overflow: hidden;}
		#header {height: 130px; background: blue; text-align: center;}
		#links {float: left; width: 190px; background: #aaa;}
		#content {float: left; width: 400px; padding: 0 10px;}
		#rechts {float: left; width: 190px; background: #555;}
		#footer {position: absolute; bottom: 0; width: 100%; height: 10em; background: #0ff; text-align: center;}
	</style>
	<!--[if IE 6]>
		<style type="text/css">
			#container {height: 100%;}
			#content {padding-bottom: 10em;}
			#footer {clear: both;}
		</style>
	<![endif]-->
</head>
<body>
	<div id="container">
		<div id="container-binnen">
			<div id="header">Header</div>
			<div id="links">Links<br />Links<br />Links<br />Links<br />Links<br />Links<br />Links<br />Links<br />Links<br />Links<br />Links<br />Links<br />Links<br />Links<br />Links-laatst<br /></div>
			<div id="content">Content<br />Content<br />Content<br />Content<br />Content<br />Content<br />Content<br />Content<br />Content<br />Content<br />Content<br />Content<br />Content<br />Content<br />Content<br />Content<br />Content<br />Content<br />Content<br />Content<br />Content-laatst<br /></div>
			<div id="rechts">Rechts<br />Rechts<br />Rechts<br />Rechts<br />Rechts<br />Rechts<br />Rechts<br />Rechts<br />Rechts<br />Rechts<br />Rechts<br />Rechts-laatst</div>
		</div>
		<div id="footer">Footer</div>
	</div>
</body>
</html>

Edit: dit kan ongetwijfeld nog wat efficiënter en zo, maar ik heb het even snel in elkaar getimmerd, en 't werkt in ieder geval.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan