CSS Menu's – de basis voor de navigatie van je website
De laatste tijd ben ik bezig geweest met het maken van navigatie menu's. Dit in verband met de nieuwe versie van Whelp. Wat zijn er een hoop mooie voorbeelden! En wat valt er een hoop te vertellen over dit onderwerp. In artikel een aanzet: hoe maak je een eenvoudig menu met HTML en CSS? Een eerste uitleg aan de hand van de website van de Volkskrant.

1. De basis – lijsten
Er zijn natuurlijk allerlei manieren om met HTML een menu te maken: tabellen, een flash-compontent inladen of lijsten – en ik vergeet er vast nog wel een paar.
Ik begin met de laatste variant: lijsten. In HTML zijn er twee type lijsten: ongeordende lijsten (unordered lists - UL) of geordende lijsten (unordered lists - OL). Binnen de lijst heb je lijstelementen (list items - LI). Een voorbeeld maakt het duidelijker. Ik neem als basis even de Volkskrant (en daarbinnen het submenu [class=subItems] onder de sectie Nieuws):
<div class="subItems">
<ul>
<li><a href="…">Binnenland</a></li>
<li><a href="…">Buitenland</a></li>
<li><a href="…">Economie</a></li>
<li><a href="…">Sport</a></li>
<li><a href="…">Kunst</a></li>
<li><a href="…">Wetenschap</a></li>
<li><a href="…">Multimedia</a></li>
<li><a href="…">Archief</a></li>
</ul></div>
<div class="menuBarRight">…</div>
De Volkskrant heeft drie div's die onder elkaar staan.
1) De eerste (class=menuBar) bevat het hoofdmenu,
2) de tweede (class=subItems) bevat de subnavigatie
3) en de derde bevat de verwijzing naar de online krant.
De subnavigatie is een ongeordende lijst met daarin per onderwerp een lijst element. Wat nog ontbreekt zijn de daadwerkelijke hyperlinks. Voor de weergave van de menu's heeft de Volkskrant een apart CSS stylesheet: menustijl.css.
2. De achtergrond van de subnavigatie
background-image: url(/volkskrant.nl/images/menu/background_menusub.gif);
background-position: left top;
background-repeat: repeat-x;
clear: both;
height: 28px;
margin: 2px 0 0;
position: absolute;
top: 24px;
width: 961px;
}
Dit stukje code zorgt ervoor dat een achtergrondafbeelding achter het submenu wordt gezet en over de gehele breedte (961px) wordt herhaald.
Met margin: 2px 0 0 maakt de Volkskrant een klein wit streepje tussen het hoofdmenu en de subnavigatie.
3. Een horizontale navigatie
Standaard zouden de elementen in de subnavigatie onder elkaar komen te staan (zie bijvoorbeeld de linker navigatie bij nu.nl). Met een eenvoudige CSS aanpassing voor een UL en LI-element kan je dit echter horizontaal neerzetten:
padding: 0px;
margin: 0px;
}
#header .bottom .subItems li {
display: inline;
list-style-type: none;
margin: 0 2px 0 0;
padding: 0;
}
Met display:inline zorg je ervoor dat de elementen in een lijn staan, dus horizontaal. List-style-type: none maakt dat je er geen bullets voor krijgt. Met de margin 0 2px 0 0 zorg je dat er aan de rechterkant 2px extra ruimte is naast ieder item. De vier getallen moet je lezen als de wijzers van een klok: boven, rechts, onder, links.
Verder zorgen de padding en margin ervoor dat alle elementen gevrijwaard zijn, zodat later dit geregeld kan worden met de hyperlink (a-tag).

4. De hyperlink vormgeven
De vormgeving van een hyperlink in het menu kent een aantal bijzonderheden:
1) het moet als een hyperlink te herkennen zijn, maar wel verschillen van andere hyperlinks in de pagina.
2) als de bezoeker er met de muis over heen gaat moet zij/hij er feedback over krijgen.
3) een actief onderdeel moet te onderscheiden zijn van niet-actieve onderdelen.
De Volkskrant lost dit zo op:
color: #003399;
background-color: inherit;
text-decoration: none;
font-size: 13px;
font-weight: bold;
line-height: 28px;
padding: 2px 4px 5px 4px;
margin: 0px 1px 0px 1px;
}
Hier wordt de kleur van een gewone hyperlink in het submenu geregeld: de onderstreping wordt uitgezet, het lettertype wordt ingesteld, de hoogte van de lijn en de paddings en margins. Dit heeft het effect dat de elementen midden in de navigatie staan.
color: #000;
text-decoration: underline;
}
Als je als bezoeker met je muis over zo'n link gaat (a:hover), dan wordt onderstreping aangezet en de kleur van hyperlink zwart gemaakt.
color: #000;
background-color: #FFF;
border-top: 1px solid #CCCCCC;
border-left: 1px solid #CCCCCC;
border-right: 1px solid #CCCCCC;
border-bottom: 0px solid #FFFFFF;
}
Een speciale positie neemt een hyperlink in waaraan de classe 'active' is toegevoegd. In dat geval is de kleur zwart, de achtergrondkleur wit en krijgt het element boven, links en rechts een grijze rand en aan de onderkant een witte lijn. Dit heeft als effect dat het een tabblad lijkt van de pagina die eronder zit (handig!).
color: white;
text-decoration: none;
background-color: #0062BF;
}
Ook deze hyperlink krijgt een mouseover status (a:hover): de kleur van de tekst wordt dan wit en de achtergrondkleur donkerblauw.
En hoe verder: de hoofdnavigatie
En hoe wordt dan de hoofdnavigatie van de Volkskrant ingericht? Meer hierover in het vervolg op dit artikel.
TIP! Voorbeelden op SmashingMagazine
Op SmashingMagazine vind je een lijst van moderne navigatie voorbeelden. Dit geeft je een goede indruk van wat er zoal kan.
Geplaatst op 15.01.09 | Tinyurl: http://tinyurl.com/clq5pp | Reageer!
Tags: css, menu, navigatie | Categorieën: css, ontwerp


