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?
 

javaDeveloper2011

Erfahrenes Mitglied
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?
 

TheBodo

Erfahrenes Mitglied
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>
 

nchristoph

Erfahrenes Mitglied
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.
 

TheBodo

Erfahrenes Mitglied
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?
 

nchristoph

Erfahrenes Mitglied
Ich wollte eigentlich das HTML Grundgerüst fertig haben, bevor ich mit PHP anfange, aber leider muss ich den Plan wohl verwerfen.

Trotzdem danke.
 

TheBodo

Erfahrenes Mitglied
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.