|
(nach meinem Artikel "In den Tiefen der Websites" in PC
Magazin 4/2005 S. 192ff.)
|
Warum?

Download
Beispielweb |
Alptraum eines jeden Webmasters: Der
Besucher findet sich auf meiner Webseite nicht zurecht! Eine
Webpräsenz wird mit einer bestimmten inneren Ordnung aufgebaut.
Sinnvoll und weit verbreitet ist eine hierarchische Struktur: Heutige Benutzer sind mit
Navigationsmitteln vertraut, die solche Strukturen in Menüleisten
abbilden.
Hier können Sie dieses Beispielweb ausprobieren.
Für die Gestaltung solcher Menüs gibt es die unterschiedlichsten
oft recht aufwendigen Möglichkeiten. Wenn die Webseite einen gewissen
Umfang erreicht, stellt sich die Frage: Wie baue ich die Navigation
so, daß sie konsistent und stimmig bleibt auch wenn Seiten
herausgenommen oder zugefügt oder inhaltlich anders eingeordnet
werden. Eine neu hinzukommende Seite bedeutet beispielsweise, daß in
den Menüs etlicher anderer Seiten ein neuer Punkt erscheinen muß. Sie
finden hier eine Lösung, die sowohl das Gestalten der Menüs als auch
die Webstruktur als auch den Inhalt der einzelnen Seiten getrennt zu
pflegen ermöglicht.
|
Wie soll?s funktionieren?
|
Wie so oft lautet das Zauberwort ?Datenbank?. Sie
soll mit JavaScript simuliert werden. JavaScript kann sehr gut mit
Datenfeldern (Arrays) umgehen, die ähnlich wie Tabellen einer
Datenbank genutzt werden können. Wir werden für jede menürelevante
Seite unserer Präsenz einmalig einen Beschreibungseintrag vornehmen.
Auf jeder Seite wird durch den Aufruf nur einer JavaScriptfunktion
dafür gesorgt, daß ein immer gleich aussehendes Menü mit den jeweils
passenden Einträgen angezeigt wird. Die Menüpunkte sind dabei
anklickbar, außer dem der jeweils aktuellen Seite. Für Surfer, die
JavaScript nicht nutzen können oder wollen, wird eine
Ausweichvariante angeboten.
Wie ein Menü genau aussehen soll, kann in der
entsprechenden JavaScriptfunktion bestimmt werden. Ob waagerechte oder
senkrechte Navigation, reiner Text oder Verwendung von Bildern,
Tabellenform oder Layer ? alles ist mit etwas Fleiß möglich (s.
folgende Abb. 2). Selbst Flashmenüs können verwendet werden, wenn die
Parameterübergabe in Textform erfolgt.

Und selbstverständlich kann das Aussehen der Elemente über CSS,
beispielsweise eine zentrale StyleSheetdatei, vorgenommen werden.
Diese ist bei Bedarf schnell geändert. Auch die gerade von Ihnen
betrachtete Seite www.computer-schroeder.de wurde nach diesem System
(weiterentwickelte Form) konstruiert. Ein weiteres Beispiel mit
aufwendiger senkrechter Navigationsleiste zeigt
www.hotel-stadttor.de.
|
Die Webstruktur
|
Für die Erprobung verwenden wir ein Beispielweb (s.
Abb. 1 oben und Download). Wir möchten, daß auf
jeder Seite eine Hauptmenüzeile und eine Untermenüzeile angezeigt
werden. Alle für die Navigation wichtigen Seiten bekommen eine
Nummer. Nichtnumerierte Seiten zeigen zwar auch Menüs, können aber nur
über interne Links erreicht werden (Beispiel: Sitemap; Ausnahme: die
Einstiegsseite). Numerieren Sie nach folgenden Regeln:
·
Die Einstiegsseite
index.htm wird nicht numeriert. Sie bekommt
in jedem Menü einen Sonderlink.
·
In jeder Menüzeile werden mehrere gleichrangige Seiten
zur Auswahl angeboten. Diese bekommen Nummern einer Zehnergruppe
(z. B. 20 bis 29).
·
Das Menü mit Nr. 1 bis 9 soll das (z. B. auf der
Homepage angezeigte) Hauptmenü sein.
Zehn Menüeinträge je Menüzeile sind sicher mehr als ausreichend. In
unserem Beispielweb sind maximal 100 Einträge vorgesehen. Dieses
Modell würde für Websites mit mehreren Dutzend HTML-Dateien genügen.
Mehr Indexeinträge sind kein Problem. Lücken in der Numerierung sind
erlaubt.
Es wäre eine gute Idee, die Seitennummer auch im Namen der Datei
wiederkehren zu lassen, also beispielsweise
12.htm. ?Sprechende? Namen werden jedoch von
Suchmaschinen durch eine bessere Positionierung belohnt.
|
Die Struktur-
datenbank
|
Mittels der Seitennumerierung wird die Webstruktur in
der JavaScript-Datenbank db.js abgebildet. Gespeichert werden je
Seite folgende Informationen:
l[i]:
Welchen Namen und Pfad hat die HTML-Datei? Die Typangabe .htm wird
hier weggelassen und vom Script zugefügt. Beispiele sind: info oder
ordner/info.
(Merkhilfe: ?Link?)
a[i]:
Wie soll der Texteintrag im Menü aussehen? Beispielsweise kann im Menü
?Infos? stehen. (Merkhilfe: ?Anker?)
v[i]:
Ein beschreibender Text, der bei Berührung durch den Mauszeiger in der
Statusleiste und als Tiptext angezeigt wird. (Merkhilfe: ?over?)
Kein Eintrag (also v[i]==??) bedeutet: unbenutzt, frei.
Denkbar wären weitere Arrays, beispielsweise für zugehörige
Bilddateien. Wenn es sich um Textdaten handelt, werden diese in
Anführungszeichen gesetzt.
[i] wie ?Index? ist die Nummer im Array, also a[1] bis
a[100] usw. Ein Index 0 ist nicht möglich, deshalb wird das Menü ab
[1] nur neun Einträge haben.
Die Indexnummer entspricht der geplanten Nr. aus unserer
Webstruktur.
Beispielsweise bedeutet
a[12]=?Shop?,
daß der Punkt 1 (?Angebote?) des Hauptmenüs gerufen wurde und in
dessen Untermenü der Menüpunkt 2 mit dem Wort ?Shop? angezeigt wird.
Bei Klick darauf erfolgt gemäß
l[12]=?waren?
die Anzeige der Seite waren.htm.
Das folgende Listing 1 zeigt Aufbau und Inhalt
der ?Datenbank?-Datei db.js für das Beispielweb mit den Anweisungen
für:
- Definition der Arrays
- Vorläufige Eintragung leerer Werte in alle Zellen - sorgt bei
Fehlnumerierung für fehlerfreie Abarbeitung.
- Zuweisung der jeweils drei Werte je Webseite. Dabei ist die Wahl
der korrekten Nummern von entscheidender Bedeutung.
Listing 1: Datei db.js ? Die Menü-?Datenbank?
// Die Datenbanktabellen (Arrays) definieren
// ===========================================
-
l = new Array();
a = new Array();
v = new Array();
-
/* Erlaeuterungen: je Menue bis zu zehn
Eintraege
l ?Link? : Dateiname ohne .htm
z.B. "info"; "../ordner/info"
a ?Anker? : Text im Menue
z. B. "Infos"
v ?oVer? : fuer Statuszeilentext,
onmouseover usw.
(v[i]=??: heißt: diese Nr. ist
nicht als Menüpunkt genutzt)
*/
-
-
// Die Arrays mit leeren Anfangswerten füllen
// ===========================================
for(i = 1; i < 100; i++) // (hier: max. 100)
{
a[i]="";
l[i]="";
v[i]="";
}
-
// Die aktuell vorhandenen Webseiten eintragen
// ===========================================
-
// Erster Hauptmenüpunkt ---------------------
l[1]="angebot";
a[1]="Angebote";
v[1]="Was dürfen Sie bei uns
erwarten?";
// die zugehörigen Untermenüeinträge
l[12]="waren";
a[12]="Shop";
v[12]="Besuchen Sie unseren Shop";
l[15]="leistungen";
a[15]="Dienstleistungen";
v[15]="Wir erfüllen auch besondere
Anforderungen";
-
// nächster Hauptmenüpunkt ---------------------
l[4]="info";
a[4]="Info's";
v[4]="Informationen über unser
Unternehmen";
// die zugehörigen Untermenüeinträge
l[41]="geschichte";
a[41]="Firmengeschichte";
v[41]="Wie fing alles an?";
-
// letzter Hauptmenüpunkt ---------------------
l[8]="kontakt";
a[8]="Impressum";
v[8]="Wie sind wir zu erreichen?";
|
Menüdesign
|
Wie sollen die Menüs aussehen? Im Beispielweb (s.
Abb. 2) sind die Menüpunkte einfache Einträge in
je einer Zeile. Interessantes Aussehen erhalten sie durch das
StyleSheet. Für die Gestaltung von Menüs gibt es zahllose
Möglichkeiten. Wollen Sie eine andere Menüform verwenden, dann
entwerfen Sie eine Musterseite mit vollständigem Beispielmenü mit
einem Werkzeug Ihrer Wahl. Wichtig ist, daß alle relevanten
Informationen in Textform im HTML-Quellcode lesbar sind.
Listing 7 zeigt kommentierte Ausschnitte aus
dem HTML-Code des Musters. Analysieren Sie diesen Code und grenzen
genau folgende Teile ab:
·
Beginn
(a) und Ende
(n) des
Gesamtmenüs
·
Beginn
(b, h) und Ende
(g, m) jeder
Menüzeile
·
Beginn
(c, e,? i, k?) und Ende
(d,?f, j,? l )
jedes Menüpunkts
Diese Codeteile werden mittels JavaScript in
den jeweiligen Prozeduren erzeugt.
Entscheiden Sie des weiteren für jedes Zeichen, ob es in jedem Menü
konstant vorkommt oder ob es vom jeweiligen Seiteninhalt abhängig ist.
Konstante Zeichenfolgen werden in den weiter unten vorgestellten
Funktionen direkt angegeben, letztere müssen über die Parameter aus
der JavaScript-Datenbank konstruiert werden.
Listing 7: So sieht der Menücode in HTML aus (Ausschnitt)
<!-- Das Menü beginnt mit dem anklickbaren Logobild:
(a) -->
<a
href="index.htm" target="_self"
onmouseover="window.status='Zur Startseite';return true"
onmouseout="window.status='';return true"
onFocus="if(this.blur)this.blur()">
<img src="logo.gif" alt="Zurück zur Startseite"
align="left" border="0" width="32"
height="32"></a>
<!-- // Beginn der ersten Menüzeile //
(b) -->
<!-- Beginn Menüpunkt
(c) -->
<span class="btn">
<a
href="angebot.htm"
title="Was dürfen Sie bei uns erwarten?"
target="_self"
onmouseover="window.status=
'Was dürfen Sie bei uns erwarten?';return true"
onmouseout="window.status='';return true"
onFocus="if(this.blur)this.blur()">Angebote</a>
</span>
<!-- Ende Menüpunkt
(d) -->
-
<!-- Beginn weitere Menüpunkte
(e) -->
...
<!-- Ende letzter Menüpunkt
(f) -->
<!-- // Ende der ersten Menüzeile //
(g) -->
-
<br>
-
<!-- // Beginn der zweiten Menüzeile //
(h) -->
<!-- Beginn Menüpunkt
(i) -->
<span class="btlt">
<a
href="waren.htm" title="Besuchen Sie unseren Shop"
target="_self"
onmouseover="window.status=
'Besuchen Sie unseren
Shop';return true"
onmouseout="window.status='';return true"
onFocus="if(this.blur)this.blur()">Shop</a>
</span>
<!-- Ende Menüpunkt
(j) -->
-
<!-- Beginn weitere Menüpunkte
(k) -->
...
<!-- Ende letzter Menüpunkt
(l) -->
<!-- // Ende der zweiten Menüzeile //
(m) -->
-
<br><hr><br>
<!-- Das Menü endet mit der Anzeige einer Trennlinie
(n) -->
|
Die Menü-
programmierung
|
Lebt die Scriptdatei
db.js vom
ständigen Ändern und Anpassen, so werden Sie in
code.js nach der anfänglichen Anpassung kaum
noch Eintragungen vornehmen. Hier befinden sich die eigentlichen
Prozeduren. Sie schreiben HTML-Befehle in die Webseiten, um die Menüs
erscheinen zu lassen: 
Die Funktion NavZeile2 ähnelt NavZeile1. Vielleicht wollen Sie als
konstanten Teil die Anzeige eines E-Mail-Links in der ersten Menüzeile
anfügen?
Listing 2: Datei code.js - Funktion ?Navigationsteil?
function Navigationsteil(start1, von1, start2, von2)
{
// Parameter: Indexnummern, die auf die DB-Tabellen zeigen
// start1: Indexnr., ab welcher der 1. Punkt des
Hauptmenüs steht
// von1: Indexnr., die dem abgebildeten Untermenü
entspricht
// (dieser Hauptmenüpunkt wird nicht anklickbar
dargestellt)
// start2: Indexnr., ab welcher der 1. des Untermenüs
steht
// von2: Indexnr., die dem abgebildeten Untermenüpunkt
entspricht
// (dieser Menüpunkt wird nicht anklickbar dargestellt)
var g
// hierin wird der gesamte HTML-Code des Navigationsteils
gesammelt
// Beispiel: Beginn mit Link zur Homepage über ein
Logobild
g='<a href="index.htm" target="_self"
onmouseover="window.status='+"'Zur
Startseite'"+';return true"
onmouseout="window.status='+"''"+';return
true"
onFocus="if(this.blur)this.blur()">';
g+='<img src="logo.gif" alt="Zurück zur
Startseite"';
g+=' align="left" border="0" width="32"
height="32"></a>';
// Das Hauptmenü erzeugen
g+=NavZeile1(start1, von1);
g+='<br>';
// Untermenü erzeugen falls erforderlich (0: entfällt)
if(start2>0) g+=NavZeile2(start2, von2);
g+='<br><hr><br>';
// Der Navigationscode ist fertig
document.write(g);
}
|
Ein Menüpunkt
|
Die Funktion
NavZelle
(s. Listing 4) organisiert die Anzeige eines einzelnen Menüpunkts.
Dazu bekommt sie folgende Informationen von der aufrufenden Funktion:
|
Parameter |
Bedeutung |
Beispiel |
|
anzeig |
Welche Zeichenfolge soll als Menütext erscheinen? |
?Angebote? |
| link |
Welche HTML-Datei soll bei Klick geöffnet werden? |
?angebot? |
| onov |
Welche Erläuterung soll in Statuszeile und eventuell Tiptext
angezeigt werden?
onov ist leer: kein Hyperlink (nicht anklickbar). |
?Was
dürfen Sie bei uns erwarten?? |
| cl |
Name
einer CSS-Klasse, welche das Aussehen des Punkts bestimmt. |
?btn? |
Listing 4 zeigt, daß zwecks Formatierung der
gesamte Menüpunkt in ein <span>-Tag eingeschlossen ist. Alle je nach
Parameterwert erforderlichen HTML-Teile werden in einer Variablen
z gesammelt und am Ende komplett
zurückgegeben.
Listing 4: Datei code.js - Ein Menüpunkt wird erzeugt
function NavZelle(anzeig, link, onov, cl)
{
// anzeig: der anzuzeigende Text
// link: Dateiname (ev. mit
Pfad), wird bei Klick geöffnet
// onov: Text, der bei
mouseover angezeigt wird
// (wenn leer, dann zumindest kein
<a>-Tag)
// cl:
CSS-Klassenname, für Aussehen des Menüpunkts
-
-
var z // hierin wird der Code gesammelt
var h // Hilfsvariable
-
// Codebeginn je Menüpunkt (HTML)
z='<span class="'+cl+'"> ';
-
// Dies nur, wenn ein Eintrag vorhanden ist
h=(onov=="")?'':('<a
href="'+link+'.htm"
title="'+onov+'"
target="_self"
onmouseover="window.status='+"'"+onov+"'"+';return true"
onmouseout="window.status='+"''"+';return true"
onFocus="if(this.blur)this.blur()">');
z+=h; // ... und weiteres (Bild?)
dazwischen möglich
h=(onov=="")?"":"</a>";
z+=anzeig+h;
-
// Codeende je Menüpunkt (HTML)
z+=' </span>';
-
return z; // z enthält alles, was für einen Menüpunkt
benötigt wird
}
|
Eine Menüzeile
|
Die Funktionen NavZeile1 (s. Listing
3) und NavZeile2 liefern den HTML-Code für die Anzeige je einer
Menüzeile. In einer Variablen werden alle benötigten Teile gesammelt.
Als Information bekommen sie von der aufrufenden Funktion
Navigationsteil folgende Parameter:
| Parameter |
Bedeutung |
Beispiel |
| start |
Welches ist die erstmögliche Indexnummer für
diese Zeile? |
1 (für Hauptmenü) |
| vonlink |
Welche Indexnummer gehört zu der jetzt aktuellen
Seite? Hieraus entnimmt die Prozedur, welcher Eintrag anders
dargestellt und nicht anklickbar wird. Steht hier eine 0, dann
werden eben alle Einträge anklickbar sein. |
4 |
Es wird zehnmal geprüft, ob der jeweilige Menüpunkt existiert, und
wenn ja wird NavZelle aufgerufen, um dessen HTML-Code zu erhalten.
Dabei wird insbesondere der Name der jeweils gewünschten CSS-Klasse
mit übermittelt.
Listing 3: Datei code.js - Erzeugung Hauptmenüzeile
function NavZeile1(start, vonlink)
{
// start: Indexnr., ab welcher der erste Menüeintrag steht
// vonlink: Indexnr., die der abgebildeten Seite
entspricht
// (dieser Menüpunkt wird nicht anklickbar dargestellt)
var z1=""; // Hierin wird der Code für die 1. Menüzeile
gesammelt
for(i = start; i <= start+9; i++) // max. 10
Einträge je Menü
{
if(l[i]=="")continue; //
übergehe nichtgenutzte Nummern
z1+=NavZelle(a[i], l[i],
(vonlink==i)?"":v[i], "btn");
}
return z1;
}
|
Das vollständige Menü
|
Die Funktion Navigationsteil wird als einzige direkt
von den HTML-Dateien unseres Webs aufgerufen. Als Ergebnis erweitert
sie den Code der Seite um die HTML-Zeilen, die im Browser das
jeweilige Menü anzeigen. Dazu braucht sie eine Menge Angaben:
| Parameter |
Bedeutung |
Beispiel |
| start1 |
Welches ist die Startindexnummer für das
Hauptmenü? |
1 |
| von1 |
Welcher Menüpunkt im Hauptmenü wurde ausgewählt,
um zu dieser Seite zu gelangen? 0 heißt: noch keiner,
beispielsweise bei der Homepage. |
4 (?Info?s?) |
| start2 |
Welches ist die Startindexnummer für das
Untermenü? Eine 0 wird hier eingetragen, wenn kein Untermenü
anzuzeigen ist. |
40 |
| von2 |
Welcher Menüpunkt im Untermenü wurde ausgewählt,
um zu dieser Seite zu gelangen? 0 heißt: noch keiner |
41 (?Firmengeschichte?) |
Die Beispielparameter zeigen den Aufruf der Funktion
Navigationsteil durch geschichte.htm. Es wird die Hauptmenüzeile und
die Untermenüzeile 4 angezeigt. Die Punkte ?Info?s? und
?Firmengeschichte? sind nicht anklickbar. Die Menüzeilen sehen also
etwa so aus:
Angebote Info?s
Impressum
Firmengeschichte
Ähnlich wie bei den anderen Funktionen gibt es auch hier eine
Sammelvariable. Es wird die Funktion NavZeile1 aufgerufen, falls
erforderlich auch NavZeile2. Weitere HTML-Befehle können zugefügt
werden, falls sie in jeglichem Menü erscheinen sollen. Im Beispiel ist
es die Grafik logo.gif, die mit einem zur Homepage führenden Hyperlink
versehen ist.
|
Webseite
mit Menü
|
Webseiten (s. Listing 6), die
ein Menü anzeigen sollen, müssen enthalten:
- Verweise auf die einzubindenden Scriptdateien (zwischen <head>
und </head>):
<script language="JavaScript" src="db.js"
type="text/javascript"></script>
<script language="JavaScript" src="code.js"
type="text/javascript"></script>
Liegen die js-Dateien nicht im gleichen Ordner wie die HTML-Datei,
geben Sie wie üblich im src-Argument den Pfad an. Diese Angabe ist
für alle Seiten gleich.
- Aufruf der Menüfunktion (Beispiel):
<script language="JavaScript">
Navigationsteil(1, 4, 40, 41);
</script>
Die in Klammern anzugebenden Parameter bestimmen den Menüinhalt.
Diese Angaben variieren für jede Webseite. Eine Änderung ist dann
erforderlich, wenn Sie die Nummernbelegung ändern sollten.
Der Aufruf erfolgt (hinter <body>) an der Stelle, wo das Menü stehen
soll. Dies kann auch in einer Tabelle oder auf einer Layerfläche
sein.
Optional sind folgende Komponenten:
- Angaben für Surfer ohne JavaScript:
<noscript>
<a href="index.htm">Home</a> -
<a href="kontakt.htm">Impressum</a> -
<a href="sitemap.htm">andere Seiten (Sitemap)</a>
</noscript>
Dies folgt unmittelbar dem </script>. Hiermit wird ein
Ausweichmenü angeboten, das zu den wichtigsten Seiten Homepage,
Impressum/Kontakt und Sitemap verzweigt.
Die Seite sitemap.htm enthält übersichtlich angeordnete Links auf
alle anderen Inhaltsseiten (s. Beispielweb auf Heft-CD).
- Angaben zum verwendeten StyleSheet:
<link rel="stylesheet" type="text/css" href="styles.css">
Diese Zeile befindet sich im Head-Bereich und benennt die Datei, in
welcher die Formatinformationen stehen.
Listing 6: Datei leistungen.htm ? eine typische Webseite
<html>
<head>
<meta http-equiv="Content-Type"
content="text/html; charset=iso-8859-1">
<meta http-equiv="Content-Language" content="de">
<meta name="author"
content="computer-schroeder.de">
<meta http-equiv="Content-Style-Type"
content="text/css">
<link rel="stylesheet" type="text/css"
href="styles.css">
<script language="JavaScript" src="db.js"
type="text/javascript"></script>
<script language="JavaScript" src="code.js"
type="text/javascript"></script>
<title>Unsere Dienstleistungen</title>
</head>
<body>
<script language="JavaScript">
Navigationsteil(1, 1, 10,
15);
</script>
<!-- Minimum für Surfer ohne JavaScript -->
<noscript>
<a href="index.htm">Home</a> -
<a
href="kontakt.htm">Impressum</a> -
<a href="sitemap.htm">andere
Seiten (Sitemap)</a>
</noscript>
<!-- Hier beginnt der normale Seiteninhalt -->
...
</body>
</html>
|
Das StyleSheet
|
Listing 5
zeigt eine kleine StyleSheetdatei mit allgemein geltenden
body-Angaben, Anweisungen zur Gestaltung der Hyperlinks, Formatangaben
für die Überschriftentags und für mit <hr> angelegte Linien.
Außerdem werden mit
.btn { FONT-SIZE: 9pt; TEXT-ALIGN: left; }
.btlt { FONT-SIZE: 8pt; TEXT-ALIGN: left; }
die StyleSheet-Klassen für die Menüpunkte definiert, wie sie von
der Funktion NavZeile1 bzw. NavZeile2 benutzt werden. Der Klassenname
wird mit einem vorangehenden Punkt als solcher gekennzeichnet.
Im Beispiel wird eine explizite Schriftgröße zugewiesen. Die
Linksausrichtung sichert ab, daß höherrangige Formatangaben nicht das
Menü ?durcheinanderwürfeln?.
Listing 5: Beispiel für Stylesheet
body { padding : 0px; height : 100% ; width : 100% ;
background-attachment:fixed; overflow : auto;
margin-left: 6px; margin-top: 6px;
margin-bottom: 5px;
font-family: Verdana, Arial, sans-serif;
font-size: 11pt;
SCROLLBAR-FACE-COLOR: #E1E9E9;
SCROLLBAR-HIGHLIGHT-COLOR: #CCFFFF;
SCROLLBAR-SHADOW-COLOR: #CCffff;
SCROLLBAR-3DLIGHT-COLOR: #FFFFFF;
SCROLLBAR-ARROW-COLOR: #008080;
SCROLLBAR-TRACK-COLOR: #FFFFFF;
SCROLLBAR-DARKSHADOW-COLOR: #008080; }
a:link { color: #008080; text-decoration: none }
a:visited { color: #109090; text-decoration: none }
a:hover { color: #004040; text-decoration: underline
overline }
a:active { color: #00FF00; text-decoration: none;
font-weight: bold }
H1 { FONT-WEIGHT: bold; FONT-SIZE: 16pt; COLOR: #400000 }
H2 { FONT-WEIGHT: bold; FONT-SIZE: 14pt; COLOR: #400000 }
H3 { FONT-SIZE: 12pt; COLOR: #008080 }
/* Klassen für normale und kleinere Menüpunkte */
.btn { FONT-SIZE: 9pt; TEXT-ALIGN: left; }
.btlt { FONT-SIZE: 8pt; TEXT-ALIGN: left; }
HR { COLOR: #008080; height:1pt; }
|
Eine Seite
kommt hinzu

Download
erweitertes Beispielweb
|
Nach all diesen Schritten, von denen die meisten
jedoch nur einmalig erforderlich sind, sollte die Navigation in Ihrem
Web super funktionieren. Die spannendste Frage ist jedoch: Kann ich
neue Seiten einfügen, ohne alle anderen Seiten anfassen zu müssen? Ja!
Zuerst werden Sie sich über den Platz der neuen Seite in der
Webhierarchie klar. Im Beispielweb werden wir eine Seite beratung.htm
in das erste Untermenü einfügen:

Dort soll sie zwischen ?Shop?(12) und ?Dienstleistungen?(15)
erscheinen. Also geben wir der neuen Seite die Nr. 14 und fügen in die
db.js die entsprechenden Zeilen ein:
l[14]="beratung";
a[14]="Beratung";
v[14]="Nutzen Sie unsere Beratungsleistungen";
Die neue Seite beginnen Sie vielleicht mit einer Vorlage ähnlich
Listing 6 ? hier sind alle erforderlichen Teile
bereits enthalten. Aktualisieren Sie nur noch die Parameter der
Menüerzeugungsfunktion:
Navigationsteil(1, 1, 10, 14);
Den Seiteninhalt erzeugen Sie mit Ihren vertrauten Werkzeugen, die
unsere Scriptkomponenten jedoch unangetastet lassen sollten.

Schließlich sollten Sie noch daran denken, die neue Seite in der
Sitemap aufzuführen. Fertig!
Hier können Sie dieses erweiterte Beispielweb
ausprobieren.
Sie haben ein flexibles System, mit welchem Sie einheitliche Menüs
in einer größeren Website nutzen können. Viel Erfolg!
|
| Die
Weiterverwendung des Wortlauts dieser Seite berührt Rechte der
Zeitschrift PC Magazin oder von mir und ist in keiner Form gestattet.
Die Anwendung der vorgestellten Prinzipien und Scripte ist erlaubt;
setzen Sie dann einen Link zu mir auf die Site. |
|