Het zoveelste footer probleem.

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hey mensen ik zag dat er hier op het forum al aardig wat footer problemen waren. Maar in die threads kon ik niet de oplossing voor mijn probleem vinden.

Ik heb een project voor school en moet daarbij een blog maken. Dat was me dan weer net iets te simpel omdat ik er al wat langer mee bezig ben, dus heb ik besloten een gehele website te maken.

Nu zit ik met een CSS probleempje. Ik was eerder namelijk zon iemand die tabellen boven divs verkoos, waarschijnlijk met de gedachten ''wat een boer niet kent eet hij niet, haha :) ''

Hoe dan ook, CSS gaat me redelijk goed af nu alleen ik krijg mn footer niet voor mekaar. Waarschijnlijk is het wat simpels maar ik kom er zelf niet uit.

Ik hoef geen complete uitwerking of iets, dat verwacht ik hier niet. maar een zetje in de goede richting zou fijn zijn :*)

style.css, hier staat de layout in.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
@import "classes.css";

#holder
{
background-image: url(images/bar.png);
background-position: top center;
background-repeat: repeat-y;
position: absolute;
min-height: 100%;
width: 1042px;
margin: 0px auto;
padding:0;
color: #333;
border: 0px solid gray;
line-height: 130%;
}

#container
{
position: relative;
min-height: 100%;
padding:0;
width: 1000px;
margin: 0px auto;
background-image: url(images/sp.png);
color: #333;
border: 0px solid gray;

}

#top
{
background-position: top center;
background-repeat: no-repeat;
width: 1042px;
height: 153px;
padding: .0em;
border-bottom: 0px solid gray;
background-image: url(images/header.png);
}

#footer
{
background-repeat: no-repeat;
width: 1042px;
height: 23px;
margin: 0px auto;
padding: .0em;
border-bottom: 0px solid gray;
background-image: url(images/footer.png);
}

#top h1
{
padding: 0;
margin: 0;
}

#leftnav
{
float: left;
width: 195px;
margin: 0;
padding: 0px;
}

#rightnav
{
float: right;
width: 195px;
margin: 0;
padding: 0px;
}

#content
{
margin-left: 200px;
border-left: 0px solid gray;
margin-right: 200px;
border-right: 0px solid gray;
padding: 0px;
max-width: 600px;
}

#leftnav p, #rightnav p { margin: 0 0 1em 0; }
#content h2 { margin: 0 0 .5em 0; }


classes.css, hier worden vooral wat extra dingen bepaald. maar hier staat ook de html,body dus deze er ook even bij gepost.
code:
1
2
3
4
5
6
7
8
9
10
11
html, body {
font-family: Verdana, Helvetica, Arial, sans-serif;
font-size: 12px;
height: 100%;
background:#111516;
margin:0px auto;
padding:0;
background-position: top center;
background-repeat: repeat-x;
background-image: url(images/bg.jpg);   
}


index.php, spreekt vrijwel voorzich.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
<?php
if($_SERVER['HTTP_HOST'] == "www.hungrygamers.com") {?>
<meta http-equiv='refresh' content='0; URL=http://hungrygamers.com/'>
<?php
exit; 
}
include("includes/config.php");
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<!-- (c) 2009 - 2010 Hungrygamers.com - Design & Code by Wilbert (HG Skizz) van Assen -->
<html lang="nl">
<head>
<title><?php echo"".$webtitel.""; ?></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-15">
    <meta http-equiv="Content-Language" content="NL">
    <link rel="stylesheet" type="text/css" href="style.css">
    <link rel="stylesheet" type="text/css" href="buttens.css">
    <link rel="icon" type="image/png" href="images/favicon.png">
    <script type="text/javascript" src="includes/js/javascript.js"></script>
    <meta name="description" content="Hungry Gamers een website vol leuke content voor gamers en hardware liefhebbers.">
    <meta name="keywords" content="Gameserver, Hardware, Gaming, Community, Lanparties, Lanparty">
    <meta name="verify-v1" content="sunH+FY0feNhdk3mIFKBaC5MOsiSTdgLfHYkCiL51M8=">
</head>
<body>

<div id="upbar"><div id="hglog"></div></div>
<!--[if !IE]>-->
<center>
<table style="border-collapse: collapse" cellpadding="0" cellspacing="0" width="1042" border="0">  
<!--<![endif]-->
<!--[if IE]>
<table style="border-collapse: collapse" cellpadding="0" cellspacing="0" width="1042" border="0" align="center">  
<![endif]-->
<tr><td>
<a href="http://hungrygamers.com"><div id="top"></div></a>
<div id="holder">
<div id="container">
<div id="leftnav">
<?php include("includes/c/blocks/menu.php"); ?>
<?php include("includes/links.php"); ?><div class="spacer"></div>
</div>
<div id="rightnav">
<?php include("includes/rechts.php"); ?><div class="spacer"></div>
</div>
<div id="content">
<?php include("includes/content.php"); ?><div class="spacer"></div>
</div>
</div>
</div>
<div id="footer"></div>
</td></tr>
</table>
<!--[if !IE]>-->
</center>
<!--<![endif]-->
</body>
</html>


Met deze code komt de footer er wel, maar hij verstopt zich zelf dan ergens achter de pagina, bovenin.
Hij moet natuurlijk geheel onderaan komen.

een voorbeeld kan men hier zien: http://hungrygamers.com je ziet dat de pagina een soort ''glas'' rand om zich heen heeft. Die glas rand heeft een ronding boven in. onderin zou dat ook moeten gebeuren, daarvoor heb ik een plaatje. alleen ik krijg dat plaatje dus niet onderaan...

Bedankt voor het lezen alvast :)
Met vriendelijke groet,
Wilbert van Assen.

[ Voor 19% gewijzigd door Verwijderd op 18-10-2009 15:20 ]


Acties:
  • 0 Henk 'm!

  • SandaX
  • Registratie: November 2003
  • Laatst online: 11:03

SandaX

Nicht Ärgern nur wundern

Misschien is het ten eerste een idee om eens te gaan kijken waar je probleem precies ligt door een testcase te maken waarin je je code uitkleed tot het minimum, in plaats van hier alles neer te plempen :X.

Daarnaast zou je eens kunnen googlen op "clear:both", meestal zijn dergelijke problemen hier mee op te lossen.

Acties:
  • 0 Henk 'm!

  • Z-Dragon
  • Registratie: December 2002
  • Laatst online: 07:03
Zonder het probleem bekeken te hebben de volgende suggestie: kijk eens naar 'clear:both'.

Edit: SandaX... >:)

[ Voor 11% gewijzigd door Z-Dragon op 18-10-2009 11:55 ]

^ Wat hij zegt.


Acties:
  • 0 Henk 'm!

  • macciez
  • Registratie: Maart 2008
  • Laatst online: 05-09 20:31
Je zegt dat je met divisions wilt werken, maar die divisions zet je vervolgens wel in een paar tables....
Als ik jou zou zijn, zou ik mij eens heel goed gaan inlezen in div´s en dan nog eens opnieuw beginnen. Probeer ook eens met floats te werken.

Do what you love, do it often


Acties:
  • 0 Henk 'm!

  • Raynman
  • Registratie: Augustus 2004
  • Laatst online: 11:41
Ik zie inderdaad nog onnodige tables en verder gebruik je nog font-tags (en dan wel HTML 4 Strict?) en lijk je besmet met divitis. Pleur niet alles in een div, maar probeer te bedenken of er geschikte HTML-elementen zijn voor de verschillende dingen op je pagina en kijk ook of je niet gewoon met CSS bestaande elementen kunt opmaken i.p.v. er nog een container omheen te zetten of een extra div ervoor of erna. Voor meer info kun je zoeken op divitis en semantiek/semantics.

Acties:
  • 0 Henk 'm!

  • Cartman!
  • Registratie: April 2000
  • Niet online
Sowieso gebruik je nu <table> <center> (waarom?!) EN <div> allemaal in combinatie, dan heb je niet helemaal begrepen wat er bedoeld wordt met "gebruik geen tabellen". Raynman weet het al prima samen te vatten voor je verder.

Kleine tip nog: als je code wilt plaatsen en het gaat over client-side dingen, pak dan de html output ipv. de php code, wat er in die includes gebeurt weten we nu niet. Eerder al gezegd maar ik herhaal t even: zorg voor een testcase, dus alles gestript behalve t echte probleem, denk maar niet dat iemand hier door honderden regels code gaat kijken voor je...

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Thx voor de hulp jongens. alhoewel ik de zin van cartman niet helemaal snap.. ''Kleine tip nog: als je code wilt plaatsen en het gaat over client-side dingen, pak dan de html output ipv. de php code''?? Voorbeeld van een client-side-ding, een vaststaand menu?.. dan is dat toch automatisch al geschreven in html en heb je toch niks met php te maken.. of begrijp ik je verkeerd? : )

Acties:
  • 0 Henk 'm!

  • Cartman!
  • Registratie: April 2000
  • Niet online
Je post php code terwijl je een clientside probleem hebt, daar hebben wij niks aan :)

Acties:
  • 0 Henk 'm!

  • sub0kelvin
  • Registratie: September 2002
  • Laatst online: 10-08-2023
Verwijderd schreef op zondag 18 oktober 2009 @ 12:36:
Thx voor de hulp jongens. alhoewel ik de zin van cartman niet helemaal snap.. ''Kleine tip nog: als je code wilt plaatsen en het gaat over client-side dingen, pak dan de html output ipv. de php code''?? Voorbeeld van een client-side-ding, een vaststaand menu?.. dan is dat toch automatisch al geschreven in html en heb je toch niks met php te maken.. of begrijp ik je verkeerd? : )
Je hebt nu de code uit index.php hier gedumpt in plaats van de gegenereerde code (in de browser, 'show source'). Aangezien hetgeen die PHP genereert ook de oorzaak van je probleem zou kunnen zijn, is dat veel interessanter dan de PHP-code

[ Voor 0% gewijzigd door sub0kelvin op 18-10-2009 12:42 . Reden: too slow :P ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Aahzo nee oke excuses. Jullie kunnen er van uit gaan dat in die includes verder geen divs of iets worden aangeroepen. Bewijze van spreke zou je die includes (rechts, links, content, menu) gewoon kunnen vervangen door ''blabla'' :)

Acties:
  • 0 Henk 'm!

Verwijderd

Het "footer probleem" wordt overigens veroorzaakt door minder goede ontwerpers. Die willen maar niet begrijpen dat de afmetingen van een pagina losstaan van die van de viewport. Ze vinden dat die footer "gewoon onder in het browservenster" moet komen.

Het beste en meest simpele voorbeeld vind ik Google. Staat de footer onderaan het scherm of onderaan de pagina? Bekijk zo nog eens 80 websites.

Acties:
  • 0 Henk 'm!

  • GoddXX2
  • Registratie: Maart 2003
  • Laatst online: 04-06 11:11
Verwijderd schreef op zondag 18 oktober 2009 @ 12:36:
Thx voor de hulp jongens. alhoewel ik de zin van cartman niet helemaal snap.. ''Kleine tip nog: als je code wilt plaatsen en het gaat over client-side dingen, pak dan de html output ipv. de php code''?? Voorbeeld van een client-side-ding, een vaststaand menu?.. dan is dat toch automatisch al geschreven in html en heb je toch niks met php te maken.. of begrijp ik je verkeerd? : )
haal uit je #holder de position: absolute; declaratie weg en het werkt. Dan geef je #footer nog een margin-bottom:100px; en je bent klaar ;)

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik was al weer alles opnieuw aan het maken etc etc.
Maar gelukkig refreshte ik nog even deze thread.

Absolute in de holder weggehaald, margin bottom toegevoegd aan de footer. En hoppa, het werkt.
Echt super bedankt! Er zouden meer mensen van jou soort moeten rond lopen haha :D

De andere mensen ook bedankt voor de tips natuurlijk :)
Super bedankt, perfect zo. ben er blij mee haha :*)

Edit:
De oplossing werkt verder prima, alleen als de content zelf (in het midden) te kort is, dan zijn de kolommen links en rechts dus langer, en dan kruipt de footer te hoog op.

Voorbeeld: http://hungrygamers.com/index.php?page=fwlink_0936
Ik ben even wat aan het proberen, maar misschien dat iemand hier een snelle oplossing weet, of een zetje in de juiste richting? ik denk zelf dat het te maken heeft met de div #content .. maar weet dat niet zeker haha :P Bedankt jongens!

Edit2: Gefixt, door de container overflow: hidden; mee te geven :>

Nogmaals bedank jongens!

[ Voor 43% gewijzigd door Verwijderd op 18-10-2009 16:23 ]


Acties:
  • 0 Henk 'm!

  • GoddXX2
  • Registratie: Maart 2003
  • Laatst online: 04-06 11:11
Haal bij #mainframe je height declaratie weg, staat daar een beetje nutteloos te zijn.

Vervang de omliggende tabel door een div
<div class="wrapper">
#top #header #holder #footer #end
</div>

je css:
.wrapper{
margin:0 auto;
width:960px; /* Is iets smaller dan je had, maar anders past het niet op 1024-browsers. */
}

Dan ziet het er wel aardig netjes uit.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hey Godd, ik heb mijn hele mainframe weg gehaald omdat ik nu een andere background gebruik. En niet meer 2 backgrounds zoals ik eerst had (namelijk 1tje als ''echte background'' en 1tje die een verloop daarvan was.)

Hoe dan ook, ik heb de tabellen voor je wrapper verwisseld. Het enige probleem wat ik toen had was dat de website niet meer goed uitgelijnd werd omdat de width te kort was. Ik snap wel dat mijn website eigenlijk beter net wat minder breed kon zijn waardoor hij dus 1024 was. Maar als ik kijk op mijn 15'' laptop scherm en mijn andere pc met klein scherm (ook 15'' volgens mij..) die hebben in de breedte 1280 en dat werkt dus prima. Mijn EEE pc is dan wel is waar 1024 in de breedte, maar daarover ga ik niet klagen.

Ben namelijk al lang blij dat mijn website nu in divs zit en dat hij werkt zoals ik graag wou. Daarom wil ik je ook hartelijk bedanken :D Echt waar ik dacht dat er van alles mis was aan de website waardoor ik alles overnieuw zou moeten doen. Maar kennelijk zijn er ook mensen die wel wat verder kijken, en zien waar de probleempjes liggen :*) Bedankt!

Acties:
  • 0 Henk 'm!

  • InZane
  • Registratie: Oktober 2000
  • Laatst online: 17-09 13:15
PHP:
1
2
3
4
5
if($_SERVER['HTTP_HOST'] == "www.hungrygamers.com") {?>
<meta http-equiv='refresh' content='0; URL=http://hungrygamers.com/'>
<?php
exit; 
}


Beetje smerig om dat zo op te lossen. Het staat zelfs nog voor je doctype.

Kijk eens hiernaar: http://php.net/manual/en/function.header.php

en hiernaar: Wikipedia: List of HTTP status codes

Dat lijkt me een stuk netter. Eventueel zou je het natuurlijk natuurlijk ook op webserverniveau kunnen oplossen.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Bedankt inzane, ook dat heb ik nu even aangepast naar:
PHP:
1
2
3
4
5
6
7
8
9
<?php
if($_SERVER['HTTP_HOST'] == "www.hungrygamers.com") {
header('Location: http://hungrygamers.com');
exit; 
}
include("includes/config.php");
?>

<!-- en dan het doctype, etc etc etc -->

Dan moet ik hem volgens mij wel boven mijn doctype laten staan want anders krijg ik als het goed is ''headers already send by'' dit kan ik dan vervolgens wel weer oplossen met iets maar dat is niet nodig lijkt me omdat het nu één en al php is boven aan.

Correct toch? :)

Ben er nu in ieder geval erg blij mee. Dus wil jullie hierbij allen nogmaals bedanken. Daarbij heb ik er ook respect voor dat jullie zelfs verder kijken dan het oorspronkelijke probleem natuurlijk.

Acties:
  • 0 Henk 'm!

  • InZane
  • Registratie: Oktober 2000
  • Laatst online: 17-09 13:15
Ja dat klopt inderdaad. Een header() moet voordat er daadwerkelijk uitput plaatsvindt uitgevoerd worden, dus die staat nu prima. Mooier is ook nog een HTTP code mee te geven.

Zoiets:
PHP:
1
header("http/1.1 301");


Die komt dan voor de Location.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Oke bedankt :*) Ik ken zelf niet zo heel erg veel van headers dus heb net even er wat over zitten lezen. En snap nu wat http/1.1 301 doet. (moved permantly als ik het goed heb.) Dus die ga ik er ook nog even bij zetten.

Ik ben erg tevreden zo, morgen ga ik weer verder met het design haha. Maar hoe ik het ook wil vormen, ik begrijp nu aardig hoe ik dat moet doen.

Daarbij werkt de footer goed, de wrapper werkt netjes waardoor geen tabellen meer nodig zijn EN het verzorgen van de juiste link (zonder www) is verbeterd. Terwijl ik alleen maar voor de footer kwam haha :D Dus jullie alleen (nogmaals) bedankt :*)

Ik denk dat velen een voorbeeld aan jullie kunnen nemen aangezien ik ook wel eens op fora ben geweest waar je gewoon voor schud wordt gezet als je iets vraagt. Dus, bedankt!
Pagina: 1