Ytterligare förbättringar
Antaganden
1. Du börjar med en fixerad bredd. Bra! Enklast för den som är ovan.
2. Bara en spalt med innehåll = navigationen i "top" då?
3. Div med id "tom_top" känns som en gammal whitespace-gif i funktionen. Ge nästa div en toppmarginal i stället. "tom_bottom" är i själva verket inte tom och borde kanske byta namn?
* Bra namn på id utgår från vad slags innehåll den har, inte ifrån var den är placerad. Tänk om du i framtiden vill ha innehållet i "top" till vänster i stället? Eftersom jag inte vet vad du skall ha längst upp, så gissar jag att det är ett ganska ordinärt innehåll med logotype och navigation. Jag kallar detta för "masthead", ett vedertaget begrepp från typografin.
* Den relativt stora yta som du täcker med detta element (298px på höjden) gör dock att jag tvekar. Har jag missförstått din intention?
4.
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
ignoreras om sidan sänds som äktaXHTML, dvs. med en MIME typ av
application/xhtml+xml
Min lösning
Jag bygger vidare på Cayas lösning som jag förbättrar på några sätt.
1. Jag har ingen universell selektor för att göra en padding och margin reset. Den universella selektorn är gör sidan mer trögladdad och är lite väl trubbig i sin funktion.
* Detta förklaras i en tråd på CSS incutios CSS diskussionslista. http://archivist.incutio.com/viewlist/css-discuss/74447http://archivist.incutio.com/viewlist/css-discuss/74447
* Roger Johansson instämmer. http://www.456bereastreet.com/archive/200509/starting_with_css/
2. Jag tar bort din index-div och använder ett mer avancerat knep i stället. Jag hanterar ditt body-element som vore det ett vanligt block-element och utnyttjar att html-elementet funkar som viewport. En div mindre!
3. Jag ändrar din doctype till strikt. På det viset förbjuds du använda många element och attribut som endast har grafiskt syfte och tvingar dig själv att utnyttja funktionerna i CSS.
4. Jag sätter ingen fast höjd på ditt "main" element. På det viset kan dess innehåll svälla om man exempelvis förstorar texten. Jag sätter en min-height i stället.
5. Jag byter namn på din CSS fil. Den skall väl användas på alla sidor och inte bara på index-sidan? Det är ju själva vitsen med CSS att man kan styra all layout på alla sidor från en enda plats!
6. Pixlar är inget bra mått på typsnitt, eftersom - trots att W3C säger att de skall betraktas som ett relativt mått - inte kan förstoras eller förminskas i MSIE.
7. Under tiden jag provar mig fram så brukar jag ge varje större block på sidan en bakgrundsfärg för att snabbt se hur de hamnar.
8. Dina PHP filer som skall inkluderas bör absolut inte ligga i underkataloger till din webrot. Exempel: Om webroten är /var/www/html så bör de ligga i en parallell kataolog till denna, typ /var/www/innehall. Det är extremt viktigt av säkerhetsskäl. Du skulle också kunna inkludera själva div-taggarna i de PHP-filer som inkluderas, för än mindre upprepning.
<div id="footer"><?php include 'innehall/bottom.php'; ?></div>
blir alltså kort och gott:
<?php include '../innehall/footer.php'; ?>
9. För skojs skull har jag också roat mig med att centrera innehållet. Eftersom jag inte sett dina bakgrundsbilder, så vet jag ju inte om det är en bra idé. Jag tänker mig detta också som en demonstration av att man kan klara sig utan en s.k. "wrapper"-div.
Sidstrukturen blir mycket kort med min lösning:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Nässjö Hockey Club</title>
<link href="css/nassjo.css" rel="stylesheet" type="text/css" />
</head>
<body>
<?php include '../innehall/masthead.php'; ?>
<div id="main"><?php include '../innehall/forklaring.php'; ?>
</div>
<?php include '../innehall/footer.php'; ?>
</body>
</html>
Lägg märke till att det inte behövs så många "divvar" och att de inkluderade PHP-filerna ligger parallellt med webbroten. Om du har din sida i en underkatalog till webbroten måste du gå längre tillbaka i din kataloghierarki.
Filen "forklaring.php" är bara ett exempel jag testade som innehåller just den här förklaringstexten.
CSS-filen ser ut så här:
body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,fieldset,input,textarea,p,blockquote,th,td {
margin:0;
padding:0;
}
html {
background:#fff url(../bilder/index/bg.jpg) top left repeat;
}
body {
background-image: url(../bilder/index/bg_table.jpg);
font:85%/1.29 Verdana, Geneva, Arial, Helvetica, sans-serif;
width: 800px;
margin: auto;
color:#000;
background-color: pink;
}
#masthead {
height: 289px;
background-color: orange;
}
#main {
min-height: 300px;
margin-top: 22px;
background-color:#fff;
background-color: pink;
}
#footer {
height: 22px;
background-color: yellow;
}
/*
Nedanståemde CSS-regler är gjorda bara som exempel
och är inte tänkt att lösa vad som diskuterats i tråden
*/
strong {
font-size: larger;
text-transform: uppercase;
}
li {
margin-left: 2em;
margin-top: 1em;
}
h2,p {
margin-top: 1em;
}
#main {
margin-bottom: 1em;
}
code {
font-size: larger;
}
Lars Gunther