4.3 Navigation
Nachdem das Grundgerüst der Seite steht, möchte ich Ihnen in diesem Schritt zeigen wie Sie eine Navigation erstellen können. Dies werde ich Ihnen am Beispiel der recht aufwändigen Navigation dieser Webseite zeigen. Besonders komplex dabei ist die Unternavigation, die ich Ihnen daher in einem separaten Folgekapitel näherbringen möchte.
HTML
Schauen Sie sich zunächst Quellcode 1 an und sehen Sie sich an, um welche Bereiche ich die HTML-Datei erweitert habe.- <!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" lang="de" xml:lang="de">
- <head>
- <title>Webdesign Tutorial</title>
- <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
- <meta name="Description" content="Beschreibung der Seite" />
- <link rel="Stylesheet" type="text/css" href="style.css" media="screen" />
- </head>
- <body>
- <div class="root">
- <a id="top" name="top"></a>
- <div id="header">
- <a style="background-image:url(design/webdesigntutorial.jpg);" href="http://www.webdesign-tutorial.net">Webdesign Tutorial</a>
- </div>
- <div id="navi">
- <span id="corner_left"></span><span id="corner_right"></span>
- <ul>
- <li>
- <a class="navilink" href=""><span>1</span> Grundlagen</a>
- </li>
- <li>
- <a class="navilink" href=""><span>2</span> Konzept</a>
- </li>
- <li>
- <a class="navilink" href=""><span>3</span> Design</a>
- </li>
- <li>
- <a class="navilink" href=""><span>4</span> Umsetzung</a>
- </li>
- <li>
- <a class="navilink" href=""><span>5</span> Programmierung</a>
- </li>
- <li>
- <a class="navilink" href=""><span>6</span> Optimierung</a>
- </li>
- </ul>
- </div>
- </div>
- </body>
- </html>
Wie Sie sicherlich richtig festgestellt haben, sind die Zeilen 18 bis 40 hinzugekommen. Eine HTML-Datei können Sie demnach Schritt für Schritt aufbauen ohne dadurch andere Bereiche der Webseite zu beeinflussen, vorausgesetzt Sie haben alles richtig gemacht. Die Navigation kommt unter den Banner, aber dennoch in das größere äußere div-Element mit der root-Klasse. Erneut verwende ich eine Id anstatt einer Klasse, da die Navigation einzigartig ist.
In Zeile 19 füge ich zunächst die beiden Rundungen hinzu. Dafür verwende ich das span-Tag, wobei es sich um ein allgemeines Inline-Element handelt. Inline bedeutet, dass darin lediglich Text und weitere Inline-Elemente enthalten sein dürfen. Bei einem div-Element handelt es sich etwa um ein Block-Element, welches nicht in einem Inline-Element vorkommen darf. Der Unterschied zum Block-Element ist, dass dieses nicht in einer neuen Zeile beginnt. Verwenden Sie mitten im Fließtext ein div-Element, so bricht dieses den Text um.
Die Position und die Grafiken der Rundungen füge ich gleich via CSS ein.
Anschließend folgt eine Liste, die mit dem ul-Tag (unordered list = unsortierte Liste) definiert wird. Die darin enthaltenen Elemente werden mit dem li-Tag (list item = Listenelement) angelegt. In dieser Liste bringe ich alle Menüpunkte unter, die ich für diese Seite benötige. Die Zahlen umschließe ich dabei erneut mit einem span-Tag, da diese anders formatiert werden soll als der Linktext. Alle Links erhalten zudem die Klasse navilink.
CSS
Da die Elemente von CSS gar nicht so zahlreich sind, wiederholen sich in Quellcode 2 viele bereits aus den vorherigen Kapiteln bekannte Eigenschaften. Die einzelnen Eigenschaften auswendig zu können sollte demnach kein Problem sein. Etwas mehr Übung benötigen Sie jedoch um mit CSS genau das umsetzen zu können, was Sie vorher mit einem Grafikprogramm gezeichnet haben.
Quellcode 2 - CSS
Die bestehende CSS-Datei muss um diese Eigenschaften erweitert werden, mit denen die Hauptnavigation formatiert wird.
- #navi
- {
- background-image: url(design/navi_gradient.gif);
- background-repeat: repeat-x;
- background-color: #aba499;
- height: 31px;
- }
- #navi span
- {
- color: #c1bcb4;
- }
- #navi ul
- {
- list-style-type: none;
- margin: 0;
- padding: 0;
- }
- #navi li
- {
- display: inline;
- }
- #navi #corner_left
- {
- width: 2px;
- height: 30px;
- background-image: url(design/navi_corner_left.gif);
- background-repeat: no-repeat;
- float: left;
- }
- #navi #corner_right
- {
- width: 2px;
- height: 30px;
- background-image: url(design/navi_corner_right.gif);
- background-repeat: no-repeat;
- float: right;
- }
- a.navilink
- {
- font-size: 16px;
- color: #e6e6e6;
- margin-left: 0;
- padding: 5px 15px 7px 15px;
- float: left;
- }
- a.navilink:hover
- {
- color: #ffffff;
- background: url(design/navi_arrow_hover.gif) no-repeat 50% 24px;
- }
Die navi-Id erhält wie auch bereits der Bannerbereich einen Hintergrund und eine feste Höhenangabe in Form von 31 Pixeln. Alle span-Elemente erhalten durch Zeile 8 bis 11 eine andere Textfarbe.
Da Listen in HTML standardmäßig ein Punkt als Aufzählungszeichen besitzen, deaktiviere ich diesen durch Zeile 14. Zudem nulle ich die Standard-Abstände des Listenelements in Zeile 15 und 16. Zeile 20 sorgt anschließend dafür, dass die Liste nicht vertikal, sondern horizontal verläuft.
Die beiden Rundungen werden in den Zeilen 22 bis 37 definiert. Die linke Rundung erhält die Eigenschaft float:left;, wodurch diese linksbündig angeordnet wird und zulässt, dass ich die Navigation rechts daneben platzieren kann. Das Gleiche gilt für die rechte Rundung, die ich mit float:right; am rechten Rand der Navigation ausrichte.
Zu guter Letzt erhalten die Menüpunkte durch Zeile 39 bis 51 das entsprechende Aussehen. Das a vor dem Punkt des Klassennamens sorgt dafür, dass diese Eigenschaften ausschließlich auf ein Anker-Tag angewendet werden.
Die in Zeile 50 angegebene Hintergrundgrafik ist der nicht ausgefüllte Pfeil, der zusätzlich zur weißen Schrift (#ffffff) beim Mouseover über einen Menüpunkt dafür sorgen soll, dass der Nutzer sieht über welchem Link er sich gerade befindet.