Servus,
hier ein kleines Tutorial von mir, wie Ihr eine Navigation mit CSS erstellen könnt.
Inhalt:
1. Vorwort
2. Grundaufbau
3. CSS
4. Abschluss
1. Vorwort
Dieses Tutorial richtet sich an Leute die eher wenig Ahnung von dieser Materie haben bzw. gerade neu einsteigen. Dieses Tutorial richtet sich ausschließlich an soeben genannte Leute und wird für "Profis" wohl eher recht langweilig sein. Bedenke: Kritik ist erwünscht, wer allerdings unfair wird sollte sich darauf gefasst machen, dass ich auch ganz gut austeilen kann.
2. Grundaufbau
So, wir legen los. Der Grundaufbau unserer Navigation besteht aus 2 DIV's, einer unsortieren Liste und mehreren Listenpunkten die Links enthalten.
Zunächst verpacken wir die Navigation in einem DIV. Muss nicht sein, ist aber schöner ;) Kann also getrost weggelassen werden. Ihr solltet allerdings beachten, dass wenn ihr das DIV weglasst, ihr die CSS dementsprechend anpassen müsst. Das gleiche gilt für die Umbenennung des DIV's.
Dann erstellen wir eine Liste (<ul>) und füllen diese mit Listenpunkten (<li>). In den Listenpunkten (<li>) finden wir die Links (<a>), die uns letztendlich zu unserer Wunscheseite "linken". Um diese Links (<a>) funktionstüchtig zu machen, müsst ihr das Raute Zeich (#) durch euer Ziel z.B. impressum.php ersetzen. (Auf die Verzeichnisstruktur achten!!).
3. CSS
HTML ist nicht schwer, für Neulinge wird sicher CSS das Problem überhaupt sein. Deswegen ab hier etwas ausführlicher.
Unser CSS-Code:
Sieht verwirrend aus, ist es aber nicht. Ruhig weiterlesen, ihr braucht keine Angst haben ;)
Fangen wir ganz oben an:
Das Sternchen (*) steht in CSS für einen Universalselektor. Das bedeutet, dass alles auf der Webseite, jedes Element, jeder Tag angesprochen wird. Wir frisieren also von Anfang an alles so, dass es keinen Außenabstand (margin) und keinen Innenabstand (padding) besitzt. Es gibt nämlich Elemente, die besitzen von vornherein einen Außen -und Innenabstand und könnten uns Probleme machen. Deswegen entschärfen wir diese "Bombe" sofort.
Hier sprechen wir den body und generell das HTML an. Wir sagen ich möchte die Schriftart "Arial" verwenden und alles soll vorerst mit der Schriftgröße 12px dargestellt werden. (Die Schriftgröße änder ich gerne von vornherein auf 12px. Dies ist kein muss.)
Der Container. Hier gehört alles rein, was auf der Seite angezeigt werden soll. Okay, eigentlich wird alles was sich im Body befindet auf der Seite angezeigt. Drücke ich mich anders aus: Alles was in der Mitte des Browsers ausgegeben werden soll wird in den Container geschrieben.
Warum?
Der Container besitzt eine feste Breite (width) von 1000px, eine automatisch festgelegte Höhe (height), je nachdem, wie groß der Inhalt des Containers ist) und zudem die Eigenschaft "margin:auto;". Diese Eigenschaft sorgt dafür, dass der Container, und dessen Inhalt, zentriert dargestellt werden.
Poah, sehr spektakulär. Wir vergeben für das DIV das die Navigation hält, eine feste Breite, eine feste Höhe und eine Hintergrundfarbe (background-color:#333; Nicht sonderlich schwer :P
Direkt 2 Sachen auf einmal? Nein, ich will euch nicht überfordern. Es ist Kinderleicht.
Unserer unsortieren Liste (<ul>) stehen normalerweise Runde Punkte voran. Eine Aufzählung nunmal. So wie die Spiegelstriche in der Schule. Durch "list-style:none" entfernen wird diese "Spiegelstrich".
Diese sehen so aus:
Im zweiten Teil sagen wir zu unserem Listenpunkt (<li>), dass er sich doch bitte mit den anderen Listenpunkten in eine Reihe stellen soll. Undzwar von Links nach Rechts und nicht von Oben nach Unten. "float:left;" ist das "Zauberwort".
So. Jetzt wird es etwas schwieriger. Alles schön der Reihe nach.
An dieser Stelle werden die Links (<a>) innerhalb der Listenpunkte (<li>) angesprochen. Diesen geben wir zuerst eine automatische Breite und eine feste Höhe von 35 Pixeln.
Dannach erkennen wir die Eigenschaft "display:block". Damit blasen wir unseren Link quasi auf die volle Breite und Höhe auf. D.h. wir können den Link überall anklicken und nicht nur da wo auch die Schrift "Navigationspunkt 1" steht.
Mit "line-height:35px;" stellen wir die Schrift Vertikal zentriert dar.
Mit "padding:0px 15px 0px 15px;" verbreitern wir unseren Navigationspunkt. Padding steht wie oben bereits erwähnt für den Innenabstand. D.h. vom äußeren Rand wird ein Abstand von 15 Pixeln nach Innen generiert. D.h. der Link wird um 30 Pixel verbreitert. 15 Pixel an der jeweiligen Seite.
Diese Schreibweise "padding:0px 15px 0px 15px;" ist vielleicht einigen unbekannt. Das ganze läuft im Uhrzeigersinn.
1. Wert: Innenabstand oben
2. Wert: Innenabstand rechts
3. Wert: Innenabstand unten
4. Wert: Innenabstand links
Kein Problem für uns. Wie wird ein Link normalerweise dargestellt? So: [Only registered and activated users can see links. Click Here To Register...]. Also Blau und unterstrichen. Das wollen wir nicht. Mit "text-decoration:none;" entfernen wir das unterstreichen, mit "color:#FFF", färben wir den Link weiß und mit "font-weight:bold;" wird der Text "Fett" dargestellt.
Dem Link an sich geben wir auch nochmal eine Hintergrundfarbe mit "background-color:#333;".
Mit dem :hover erzeugen wir einen "Mouseover" Effekt. Wenn wir mit der Maus über unseren Link (<a>) fahren, wird der Hintergrund etwas heller.
Mit :active erzeugen wir einen "Klick" Effekt. Wenn wir mit der Maus auf unseren Link (<a>) klicken, wird der Hintergrund blau.
4. Abschluss
So, das war es auch schon. Ich hoffe ich habe euch etwas beigebracht ;) Für Kritik stehe ich immer offen, für Verbesserungsvorschläge ebenso und wenn ihr Fragen haben solltet, dürft ihr euch gerne hier melden.
Falls etwas unverständlich ist, sagt mir bescheid und ich werde versuchen es erneut, besser zu erklären oder ich änder die Stelle im Tutorial gleich. Rechtschreibfehler dürft ihr mir auch melden.
Damit wären wir am Ende.
Bis dann,
gez. galaxyo
Edit:
Auf wunsch erweiter ich das ganze auch noch. Undzwar wie man eine Dropdown Navigation nur mit CSS und ohne JS erstellt.
hier ein kleines Tutorial von mir, wie Ihr eine Navigation mit CSS erstellen könnt.
Inhalt:
1. Vorwort
2. Grundaufbau
3. CSS
4. Abschluss
1. Vorwort
Dieses Tutorial richtet sich an Leute die eher wenig Ahnung von dieser Materie haben bzw. gerade neu einsteigen. Dieses Tutorial richtet sich ausschließlich an soeben genannte Leute und wird für "Profis" wohl eher recht langweilig sein. Bedenke: Kritik ist erwünscht, wer allerdings unfair wird sollte sich darauf gefasst machen, dass ich auch ganz gut austeilen kann.
2. Grundaufbau
So, wir legen los. Der Grundaufbau unserer Navigation besteht aus 2 DIV's, einer unsortieren Liste und mehreren Listenpunkten die Links enthalten.
HTML Code:
<div id="container"> <!-- Container --> <!-- Platz für mehr --> <div id="navigation"> <!-- Die Navigation wird in einem DIV verpackt. --> <ul> <li><a href="#">Navigationspunkt 1</a></li> <li><a href="#">Navigationspunkt 2</a></li> <li><a href="#">Navigationspunkt 3</a></li> <li><a href="#">Navigationspunkt 4</a></li> <li><a href="#">Navigationspunkt 5</a></li> <li><a href="#">Navigationspunkt 6</a></li> <li><a href="#">Navigationspunkt 7</a></li> </ul> </div> <div style="clear:both"></div> <!-- Platz für mehr --> </div>
Dann erstellen wir eine Liste (<ul>) und füllen diese mit Listenpunkten (<li>). In den Listenpunkten (<li>) finden wir die Links (<a>), die uns letztendlich zu unserer Wunscheseite "linken". Um diese Links (<a>) funktionstüchtig zu machen, müsst ihr das Raute Zeich (#) durch euer Ziel z.B. impressum.php ersetzen. (Auf die Verzeichnisstruktur achten!!).
3. CSS
HTML ist nicht schwer, für Neulinge wird sicher CSS das Problem überhaupt sein. Deswegen ab hier etwas ausführlicher.
Unser CSS-Code:
Code:
* {
margin:0px;
padding:0px;
}
body, html {
font-family:Arial;
font-size:12px;
}
#container {
width:1000px;
height:auto;
margin:auto;
}
#navigation {
width:1000px;
height:35px;
background-color:#333;
}
#navigation ul {
list-style:none;
}
#navigation ul li {
float:left;
}
#navigation ul li a {
width:auto;
height:35px;
display:block;
line-height:35px;
padding:0px 15px 0px 15px;
text-decoration:none;
background-color:#333;
color:#FFF;
font-weight:bold;
}
#navigation ul li a:hover {
background-color:#666;
}
#navigation ul li a:active {
background-color:#06F;
}
Fangen wir ganz oben an:
Code:
* {
margin:0px;
padding:0px;
}
Code:
body, html {
font-family:Arial;
font-size:12px;
}
Code:
#container {
width:1000px;
height:auto;
margin:auto;
}
Warum?
Der Container besitzt eine feste Breite (width) von 1000px, eine automatisch festgelegte Höhe (height), je nachdem, wie groß der Inhalt des Containers ist) und zudem die Eigenschaft "margin:auto;". Diese Eigenschaft sorgt dafür, dass der Container, und dessen Inhalt, zentriert dargestellt werden.
Code:
#navigation {
width:1000px;
height:35px;
background-color:#333;
}
Code:
#navigation ul {
list-style:none;
}
#navigation ul li {
float:left;
}
Unserer unsortieren Liste (<ul>) stehen normalerweise Runde Punkte voran. Eine Aufzählung nunmal. So wie die Spiegelstriche in der Schule. Durch "list-style:none" entfernen wird diese "Spiegelstrich".
Diese sehen so aus:
- So siehts aus
Im zweiten Teil sagen wir zu unserem Listenpunkt (<li>), dass er sich doch bitte mit den anderen Listenpunkten in eine Reihe stellen soll. Undzwar von Links nach Rechts und nicht von Oben nach Unten. "float:left;" ist das "Zauberwort".
Code:
#navigation ul li a {
width:auto;
height:35px;
display:block;
line-height:35px;
padding:0px 15px 0px 15px;
text-decoration:none;
background-color:#333;
color:#FFF;
font-weight:bold;
}
An dieser Stelle werden die Links (<a>) innerhalb der Listenpunkte (<li>) angesprochen. Diesen geben wir zuerst eine automatische Breite und eine feste Höhe von 35 Pixeln.
Dannach erkennen wir die Eigenschaft "display:block". Damit blasen wir unseren Link quasi auf die volle Breite und Höhe auf. D.h. wir können den Link überall anklicken und nicht nur da wo auch die Schrift "Navigationspunkt 1" steht.
Mit "line-height:35px;" stellen wir die Schrift Vertikal zentriert dar.
Mit "padding:0px 15px 0px 15px;" verbreitern wir unseren Navigationspunkt. Padding steht wie oben bereits erwähnt für den Innenabstand. D.h. vom äußeren Rand wird ein Abstand von 15 Pixeln nach Innen generiert. D.h. der Link wird um 30 Pixel verbreitert. 15 Pixel an der jeweiligen Seite.
Diese Schreibweise "padding:0px 15px 0px 15px;" ist vielleicht einigen unbekannt. Das ganze läuft im Uhrzeigersinn.
1. Wert: Innenabstand oben
2. Wert: Innenabstand rechts
3. Wert: Innenabstand unten
4. Wert: Innenabstand links
Code:
text-decoration:none; background-color:#333; color:#FFF; font-weight:bold;
Dem Link an sich geben wir auch nochmal eine Hintergrundfarbe mit "background-color:#333;".
Code:
#navigation ul li a:hover {
background-color:#666;
}
#navigation ul li a:active {
background-color:#06F;
}
Mit :active erzeugen wir einen "Klick" Effekt. Wenn wir mit der Maus auf unseren Link (<a>) klicken, wird der Hintergrund blau.
4. Abschluss
So, das war es auch schon. Ich hoffe ich habe euch etwas beigebracht ;) Für Kritik stehe ich immer offen, für Verbesserungsvorschläge ebenso und wenn ihr Fragen haben solltet, dürft ihr euch gerne hier melden.
Falls etwas unverständlich ist, sagt mir bescheid und ich werde versuchen es erneut, besser zu erklären oder ich änder die Stelle im Tutorial gleich. Rechtschreibfehler dürft ihr mir auch melden.
Damit wären wir am Ende.
|
|
Bis dann,
gez. galaxyo
Edit:
Auf wunsch erweiter ich das ganze auch noch. Undzwar wie man eine Dropdown Navigation nur mit CSS und ohne JS erstellt.