CSS Klasse per klick wechseln

nchristoph

Erfahrenes Mitglied
Hallo zusammen,

ich bin gerade am Tüfteln und stecke ein bisschen fest.

Ich habe eine Navigation welche so aufgebaut ist:

Code:
<div id="menu">
				<ul>
					<li class="active"><a href="index.php" accesskey="1" title=""><span>Home</span></a></li>
					<li ><a href="#" accesskey="2" title=""><span>Forum</span></a></li>
					<li><a href="kontakt.php" accesskey="3" title=""><span>Kontakt</span></a></li>
					<li><a href="index.php" accesskey="4" title=""><span>About</span></a></li>
				</ul>
			</div>

Wie schaffe ich es nun, dass, wenn auf z.b. Forum geklickt wird, der LI Tag die CSS Klasse active kriegt und die Klasse bei Home gelöscht wird.

Geht das mit rein HTML oder benötigt man da auch Javascript?

Ich suche schon den ganzen Abend und finde da keine Lösung zu, wahrscheinlich suche ich wieder falsch.

Kann mir da wer helfen?
 
Hi,

da brächtest du etwas JavaScript!

Aber: onclick wird bei einem Link die Seite gewechselt.
Wenn bei home irgendwas anders sein soll als bei forum, muss es halt in index.php anders stehen als in forum.php.

Oder meinst du mouseover?
 
Da wirst du in den jeweiligen Dateien (kontakt.php / forum.php / etc.) die Klasse einfach manuell setzen müssen.
Wenn du bei dem Klick auf Forum die Seite NICHT wechseln willst, schreibe einfach folgendes:

Code:
<a href="javascript:this.class='active'" accesskey="2" title=""><span>Forum</span></a>
 
Da wirst du in den jeweiligen Dateien (kontakt.php / forum.php / etc.) die Klasse einfach manuell setzen müssen.
Wenn du bei dem Klick auf Forum die Seite NICHT wechseln willst, schreibe einfach folgendes:

Code:
<a href="javascript:this.class='active'" accesskey="2" title=""><span>Forum</span></a>

Danke erstmal für die Antwort.

Im Moment sind das noch einzelne Dateien, später werd ich das mit frameless machen mittels index.php?p=blabla

Wie muss ich das dann machen, wenn die Seite geändert wird?

Später werd ich einfach auf $_GET prüfen ob und welche gesetzt ist und die Klasse auf active setzten.
 
Momentan könntest du es über das #-Zeichen versuchen, indem du sie aus der URL filterst in PHP.
Aber wenn du es später sowieso umbauen willst, warum dann nicht schon jetzt?
 
Ich wollte eigentlich das HTML Grundgerüst fertig haben, bevor ich mit PHP anfange, aber leider muss ich den Plan wohl verwerfen.

Trotzdem danke.
 
Ja, aber das wirkt doch deinem Plan entgegen!

Du baust einfach das HTML-Grundgerüst einmal in die index.php.
Du wirst das Menü aber als PHP-Datei bauen müssen. Also baust du die und includest sie in deiner index.php.
Dann baust du in der index.php dein HTML-Gerüst einfach weiter.
Und das RICHTIGE, größere PHP machst du dann in den anderen Dateien, die musst du ja auch noch nicht zuende programmieren. Reicht ja wenn du da erstmal nur HTML reinpackst und den Namen der Datei ausgibst, damit du weißt, welche es ist.
 
Zurück