Tutorial slicing-coderen xhtml-valid in alle browsers
Veel mensen gebruiken het woordje basing hiervoor. Maar dit is geen officiele benaming hiervoor, dit woord is ooit verzonnen door iemand. Het woordje slicing, betekend niets meer dan "snijden" of in dit geval; je layout in stukjes snijden. Daarna gaan we deze kleine stukjes d.m.v. css en html zo coderen dat je layout weer 1 geheel wordt.
Voorbeeld layout die we gaan slicen-coderen:
Afbeelding niet beschikbaarDe bron kon niet worden geladen (marjolein.one2xs.com).Bron openen ↗
Stap 1:
Je hebt uiteraard eerst een ontwerp nodig voor je layout. Je mag je eigen layout gebruiken maar je kan ook mijn voorbeeldlayout gebruiken. Deze is hier te downloaden. Dit is een psd-bestand, heb je geen photoshop dan kun je ook een .png bestand zonder teksten downloaden hier
Als eerst gaan we de layout slicen, zorg ervoor dat je de afbeeldingen zo klein mogelijk uitsnijd (hoe kleiner des te minder laadtijd voor je website).
De achtergrond (background) hoef je bv maar 1px breed te doen, die kunnen we nl laten herhalen. Dit geldt ook voor het content gedeelte. De header, menubalk en footer knippen we in zijn geheel uit, ook met het schaduwrandje aan de buitenkant. Zie hieronder mijn uitgeknipte stukjes:
header
menu
content
footer
background
Dit zijn alle afbeeldingen die we nodig hebben, en zet deze in een aparte map en noem deze "images".
Stap 2:
Nu maken we eest een css bestand en beginnen met de standaard waarden.
Tussen deze /* */ tekens kunnen we commentaar zetten, zelf zet ik altijd mijn naam bovenaan het document.
We beginnen met de body, hierin zetten we informatie die nodig is voor alles wat er tussen de bodytags nodig is, zoals het lettertype gebruik (font) achtergrond (background) enz. De height, width en margin is nodig om het in alle browsers goed neer te zetten.Zoals je ziet heb ik de background al in de body gezet, zowel een backgroundkleur als een afbeelding. De afbeelding laten we horizontaal herhalen met repeat-x.
Als je dit gedaan heb maken we ook een standaard html-bestand. En hierin verwijzen we via de linkcode naar je css bestand, deze moet tussen de headtags staan. Het doctype is nodig om je bestand xhtml-valid te maken. Ook de metatags zijn belangrijk. Je kan er zelf nog meer toevoegen (zie http://www.metatags.nl voor meer info).Sla je html-bestand op als index.html en zet hem in dezelfde map als je map images. En als je nu je index.html opent via je browser zie je als het goed is een lege pagina met alleen achtergrondkleur met bovenaan de groene balk.
Stap 3:
Zo en dan nu gaan we de stukjes layout aan elkaar zetten zodat we er later tekst in kunnen verwerken.
Eerst beginnen we met de container, zo noemen we het vak waarin we de layout zetten. Zo hoeven we niet iedere afbeelding op zijn plaats te zetten als je de layout bv in het midden van je site wil.
Dan zetten we de header, menubalkje, content en footer in de css. Omdat je deze maar 1x nodig heb, gebruiken we hiervoor div="id" dit geef je aan in je css met #. Als je een afbeelding of div zonder afbeelding meerder malen wil gebruiken dan gebruik je div="class" en geef je in je css aan met een . (punt).En nu verwerken we al deze divs in de html:in de content div heb ik even een paar regels (br) neergezet zodat je dit gedeelte kan zien als je de layout even wil bekijken in je browser. Deze halen we later weer weg.
stap 4:
Tot zover was het eigenlijk best wel makkelijk allemaal, maar nu gaan we ervoor zorgen dat je teksten kunt plaatsen op de juiste plekken.
We beginnen met de header, je kan in je design al je websitenaam zetten maar dit kan ook met css. Dit doen we met h1 en met padding zetten we de naam op zijn plaats.Achter padding staan 4 getallen, 1e getal is de ruimte vanaf de bovenkant, 2e getal is de ruimte vanaf rechts, 3e getal de ruimte vanaf de onderkant en het 4e getal de ruimte vanaf de linkerkant.
Zo wordt dan de html:Nu dan de menubalk, we houden dit nog erg simpel dat we daar een paar linkjes in kunnen zetten. Op een later tijdstip zal ik uitleggen hoe je dit netjes met
Veel mensen gebruiken het woordje basing hiervoor. Maar dit is geen officiele benaming hiervoor, dit woord is ooit verzonnen door iemand. Het woordje slicing, betekend niets meer dan "snijden" of in dit geval; je layout in stukjes snijden. Daarna gaan we deze kleine stukjes d.m.v. css en html zo coderen dat je layout weer 1 geheel wordt.
Voorbeeld layout die we gaan slicen-coderen:
Spoiler tonen
Afbeelding niet beschikbaarDe bron kon niet worden geladen (marjolein.one2xs.com).Bron openen ↗Stap 1:
Je hebt uiteraard eerst een ontwerp nodig voor je layout. Je mag je eigen layout gebruiken maar je kan ook mijn voorbeeldlayout gebruiken. Deze is hier te downloaden. Dit is een psd-bestand, heb je geen photoshop dan kun je ook een .png bestand zonder teksten downloaden hier
Als eerst gaan we de layout slicen, zorg ervoor dat je de afbeeldingen zo klein mogelijk uitsnijd (hoe kleiner des te minder laadtijd voor je website).
De achtergrond (background) hoef je bv maar 1px breed te doen, die kunnen we nl laten herhalen. Dit geldt ook voor het content gedeelte. De header, menubalk en footer knippen we in zijn geheel uit, ook met het schaduwrandje aan de buitenkant. Zie hieronder mijn uitgeknipte stukjes:
header
menu
content
footer
background
Dit zijn alle afbeeldingen die we nodig hebben, en zet deze in een aparte map en noem deze "images".
Stap 2:
Nu maken we eest een css bestand en beginnen met de standaard waarden.
Tussen deze /* */ tekens kunnen we commentaar zetten, zelf zet ik altijd mijn naam bovenaan het document.
We beginnen met de body, hierin zetten we informatie die nodig is voor alles wat er tussen de bodytags nodig is, zoals het lettertype gebruik (font) achtergrond (background) enz. De height, width en margin is nodig om het in alle browsers goed neer te zetten.
Spoiler tonen
/* CSS Document */
/* Stylesheet | Author: Marjolein KFB Design 2011 */
body { height: 100%; margin: 0; padding: 0; background:#f1f1f0 url(images/background.png) repeat-x; font: 11px normal Verdana, Arial, Helvetica, sans-serif; color:#000000; }
html{ height: 100%; }Als je dit gedaan heb maken we ook een standaard html-bestand. En hierin verwijzen we via de linkcode naar je css bestand, deze moet tussen de headtags staan. Het doctype is nodig om je bestand xhtml-valid te maken. Ook de metatags zijn belangrijk. Je kan er zelf nog meer toevoegen (zie http://www.metatags.nl voor meer info).
Spoiler tonen
<!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=iso-8859-1" />
<title>Titel van je site</title>
<link href="style.css" rel="stylesheet" type="text/css" />
</head>
<body>
Hier komt dadelijk je layout (tussen de body tags)
</body>
</html>Stap 3:
Zo en dan nu gaan we de stukjes layout aan elkaar zetten zodat we er later tekst in kunnen verwerken.
Eerst beginnen we met de container, zo noemen we het vak waarin we de layout zetten. Zo hoeven we niet iedere afbeelding op zijn plaats te zetten als je de layout bv in het midden van je site wil.
Dan zetten we de header, menubalkje, content en footer in de css. Omdat je deze maar 1x nodig heb, gebruiken we hiervoor div="id" dit geef je aan in je css met #. Als je een afbeelding of div zonder afbeelding meerder malen wil gebruiken dan gebruik je div="class" en geef je in je css aan met een . (punt).
Spoiler tonen
/* CSS Document */
/* Stylesheet | Author: Marjolein KFB Design 2011 */
body { height: 100%; margin: 0; padding: 0; background:#f1f1f0 url(images/background.png) repeat-x; font: 11px normal Verdana, Arial, Helvetica, sans-serif; color:#000000; }
html{ height: 100%; }
#container {width:900px; margin:0 auto;} /* width= de breedte van je layout, margin 0 = aantal pixels vanaf de bovenkant en auto betekend gecentreerd.*/
#header {background: url(images/header.png); width: 900px; height: 160px; margin: 0;}
#menu {background: url(images/menu.png); width: 900px; height: 27px; margin: 0;}
#content {background: url(images/content.png); width: 900px; margin: 0; overflow:hidden;} /*hieraan geven we geen height mee omdat deze moet "meerekken" met de inhoud van je site. De overflow zorgt hiervoor.*/
#footer {background: url(images/footer.png); width: 900px; height: 35px; margin: 0;}Spoiler tonen
<!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=iso-8859-1" />
<title>Titel van je site</title>
<link href="style.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="container">
<div id="header"></div>
<div id="menu"></div>
<div id="content"><br /><br /><br /><br /><br /><br /></div>
<div id="footer"></div>
</div>
</body>
</html>stap 4:
Tot zover was het eigenlijk best wel makkelijk allemaal, maar nu gaan we ervoor zorgen dat je teksten kunt plaatsen op de juiste plekken.
We beginnen met de header, je kan in je design al je websitenaam zetten maar dit kan ook met css. Dit doen we met h1 en met padding zetten we de naam op zijn plaats.
Spoiler tonen
/* CSS Document */
/* Stylesheet | Author: Marjolein KFB Design 2011 */
body { height: 100%; margin: 0; padding: 0; background:#f1f1f0 url(images/background.png) repeat-x; font: 11px normal Verdana, Arial, Helvetica, sans-serif; color:#000000; }
html{ height: 100%; }
#container {width:900px; margin:0 auto;} /* width= de breedte van je layout, margin 0 = aantal pixels vanaf de bovenkant en auto betekend gecentreerd.*/
#header {background: url(images/header.png); width: 900px; height: 160px; margin: 0;}
#header h1 {font-size: 30px; color:#f1f1f0; margin:0; padding:120px 0 0 100px; } /* we zetten de h1 achter #header zodat de h1 waarde allen voor die div toepasbaar is.*/
#menu {background: url(images/menu.png); width: 900px; height: 27px; margin: 0;}
#content {background: url(images/content.png); width: 900px; margin: 0; overflow:hidden;} /*hieraan geven we geen height mee omdat deze moet "meerekken" met de inhoud van je site. De overflow zorgt hiervoor.*/
#footer {background: url(images/footer.png); width: 900px; height: 35px; margin: 0;}Zo wordt dan de html:
Spoiler tonen
<!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=iso-8859-1" />
<title>Titel van je site</title>
<link href="style.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="container">
<div id="header"><h1>Websitenaam</h1></div>
<div id="menu"></div>
<div id="content"><br /><br /><br /><br /><br /><br /></div>
<div id="footer"></div>
</div><!-- met deze div sluit je de container pas weer af -->
</body>
</html>- en
- kan doen.
De css:Zo wordt dan de html:Spoiler tonen
/* CSS Document */ /* Stylesheet | Author: Marjolein KFB Design 2011 */ body { height: 100%; margin: 0; padding: 0; background:#f1f1f0 url(images/background.png) repeat-x; font: 11px normal Verdana, Arial, Helvetica, sans-serif; color:#000000; } html{ height: 100%; } #container {width:900px; margin:0 auto;} /* width= de breedte van je layout, margin 0 = aantal pixels vanaf de bovenkant en auto betekend gecentreerd.*/ #header {background: url(images/header.png); width: 900px; height: 160px; margin: 0;} #header h1 {font-size: 20px; color:#f1f1f0; margin:0; padding:120px 0 0 100px; } /* we zetten de h1 achter #header zodat de h1 waarde allen voor die div toepasbaar is.*/ #menu {background: url(images/menu.png); width: 900px; height: 27px; margin: 0;} #menuitems {text-align: center; padding-top: 5px;} /*nu komt het in het midden en 5px vanaf de bovenkant.*/ #menuitems a {font-size: 10px; color: #f1f1f0; text-decoration: none;} /*met de a kunnen we de waarde van de linken bepalen voor de menuitems*/ #menuitems a:hover { color: #cedfe8;}/*de kleur voor als je met je muis over de link gaat*/ #content {background: url(images/content.png); width: 900px; margin: 0; overflow:hidden;} /*hieraan geven we geen height mee omdat deze moet "meerekken" met de inhoud van je site. De overflow zorgt hiervoor.*/ #footer {background: url(images/footer.png); width: 900px; height: 35px; margin: 0;}Het content slaan we even over omdat dit meer uitleg nodig heeft, voor de footer doen we het zo:Spoiler tonen
<!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=iso-8859-1" /> <title>Titel van je site</title> <link href="style.css" rel="stylesheet" type="text/css" /> </head> <body> <div id="container"> <div id="header"> <h1>Websitenaam</h1> </div> <div id="menu"> <div id="menuitems"> <a href="#">home</a> | <a href="#">link 2</a> | <a href="#">link 3</a> | <a href="#">enzovoorts</a> </div> <div id="content"><br /><br /><br /><br /><br /><br /></div> <div id="footer"></div> </div> </body> </html>html:Spoiler tonen
/* CSS Document */ /* Stylesheet | Author: Marjolein KFB Design 2011 */ body { height: 100%; margin: 0; padding: 0; background:#f1f1f0 url(images/background.png) repeat-x; font: 11px normal Verdana, Arial, Helvetica, sans-serif; color:#000000; } html{ height: 100%; } #container {width:900px; margin:0 auto;} /* width= de breedte van je layout, margin 0 = aantal pixels vanaf de bovenkant en auto betekend gecentreerd.*/ #header {background: url(images/header.png); width: 900px; height: 160px; margin: 0;} #header h1 {font-size: 30px; color:#f1f1f0; margin:0; padding:120px 0 0 100px; } /* we zetten de h1 achter #header zodat de h1 waarde allen voor die div toepasbaar is.*/ #menu {background: url(images/menu.png); width: 900px; height: 27px; margin: 0;} #menuitems {text-align: center; padding-top: 3px;} /*nu komt het in het midden en 3px vanaf de bovenkant.*/ #menuitems a {font-size: 11px; color: #f1f1f0; text-decoration: none;} /*met de a kunnen we de waarde van de linken bepalen voor de menuitems*/ #menuitems a:hover { color: #cedfe8;}/*de kleur voor als je met je muis over de link gaat*/ #content {background: url(images/content.png); width: 900px; margin: 0; overflow:hidden;} /*hieraan geven we geen height mee omdat deze moet "meerekken" met de inhoud van je site. De overflow zorgt hiervoor.*/ #footer {background: url(images/footer.png); width: 900px; height: 35px; margin: 0;} #footer h2 {font-size: 9px; color:#f1f1f0; text-align: center; padding-top: 2px; margin: 0;} /*de margin is hier nodig om de footer op zijn plaats te houden*/stap 5:Spoiler tonen
<!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=iso-8859-1" /> <title>Titel van je site</title> <link href="style.css" rel="stylesheet" type="text/css" /> </head> <body> <div id="container"> <div id="header"> <h1>Websitenaam</h1> </div> <div id="menu"> <div id="menuitems"> <a href="#">home</a> | <a href="#">link 2</a> | <a href="#">link 3</a> | <a href="#">enzovoorts</a> </div> <div id="content"><br /><br /><br /><br /><br /><br /></div> <div id="footer"><h2>Copyright: Jouw website.nl - design made by Marjolein</h2></div> </div> </body> </html>
Nu dan het contentgedeelte, zoals je in het ontwerp kan zien is dit in 2 kolommen verdeeld, links een smalle kolom en rechts een brede voor het content.
Dus we gaan de content div in 2 kolommen verdelen. Dit doen we met de waarde float: left;. Op deze manier kun je kolommen creëren die steeds vanaf links naast elkaar geplaatst worden. En met margin bepaal je dan de tussenruimtes. We maken een div left en een div right in de css:De html komt er dan zo uit te zien:Spoiler tonen
/* CSS Document */ /* Stylesheet | Author: Marjolein KFB Design 2011 */ body { height: 100%; margin: 0; padding: 0; background:#f1f1f0 url(images/background.png) repeat-x; font: 11px normal Verdana, Arial, Helvetica, sans-serif; color:#000000; } html{ height: 100%; } #container {width:900px; margin:0 auto;} /* width= de breedte van je layout, margin 0 = aantal pixels vanaf de bovenkant en auto betekend gecentreerd.*/ #header {background: url(images/header.png); width: 900px; height: 160px; margin: 0;} #header h1 {font-size: 30px; color:#f1f1f0; margin:0; padding:120px 0 0 100px; } /* we zetten de h1 achter #header zodat de h1 waarde allen voor die div toepasbaar is.*/ #menu {background: url(images/menu.png); width: 900px; height: 27px; margin: 0;} #menuitems {text-align: center; padding-top: 3px;} /*nu komt het in het midden en 3px vanaf de bovenkant.*/ #menuitems a {font-size: 11px; color: #f1f1f0; text-decoration: none;} /*met de a kunnen we de waarde van de linken bepalen voor de menuitems*/ #menuitems a:hover { color: #cedfe8;}/*de kleur voor als je met je muis over de link gaat*/ #content {background: url(images/content.png); width: 900px; margin: 0; overflow:hidden;} /*hieraan geven we geen height mee omdat deze moet "meerekken" met de inhoud van je site. De overflow zorgt hiervoor.*/ #left { width: 195px; margin: 10px 0 0 50px; float:left;} #right { width: 580px; margin: 10px 0 0 30px; float:left;} /*let op dat de width + de margins van zowel left als right totaal niet meer zijn dan de breedte van je layout, anders komt de laatste div eronder ipv ernaast.*/ #footer {background: url(images/footer.png); width: 900px; height: 35px; margin: 0;} #footer h2 {font-size: 9px; color:#f1f1f0; text-align: center; padding-top: 2px; margin: 0;}/*de margin is hier nodig om de footer op zijn plaats te houden*/Omdat we een float:left; hebben gebruikt is het nodig om na de laatste div waarin een float staat om clear te gebruiken:Spoiler tonen
<!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=iso-8859-1" /> <title>Titel van je site</title> <link href="style.css" rel="stylesheet" type="text/css" /> </head> <body> <div id="container"> <div id="header"> <h1>Websitenaam</h1> </div> <div id="menu"> <div id="menuitems"> <a href="#">home</a> | <a href="#">link 2</a> | <a href="#">link 3</a> | <a href="#">enzovoorts</a> </div> <div id="content"> <div id="left"> Hier de tekst links</div> <div id="right">Hier de tekst in je content vak <br /><br /></div> </div> <div style="clear:both"></div> <div id="footer"><h2>Copyright: Jouw website.nl - design made by Marjolein</h2></div> </div> </body> </html>
Het resultaat: http://marjolein.one2xs.com/tut/index.html
Dit is de basis van een layout coderen. Op een later tijdstip breid ik deze tutorial uit met bv vakjes in de linkerkolom met koptekstjes. Ook leg ik dan uit hoe je het beste een menu kan maken met ul en li.
Ik hoop dat het allemaal duidelijk is, het schrijven van een tutorial was toch moeilijker dan ik dacht
NB: Deze tutorial is geschreven door Marjolein. Deze staat ook op kfb-design.nl maar mag onder geen enkele voorwaarde gekopieerd of ergens anders gedupliceerd worden!



Hier wachtte ik op! 