Hallo Auge, auch Dir: danke! 😀
Mit
:active
formatiert man einen Link in dem Zustand des angeklickt seins, also z.B. bei gedrückt gehaltener linker Maustaste. Dieses:active
hat absolut nichts damit zu tun, dass genau das Dokument geladen wurde, dass das Linkziel des letzten Kicks auf der zuletzt geladenen Seite war. Von soetwas weiß CSS üblicherweise nichts. Ausnahme davon ist eine ID (ein „Fragment“) als Linkziel (zum Beispiel<a href="#top">
).Wenn du also in der Navigation zu zur Zeit geladene Seite kennzeichnen willst, musst du sie im HTML-Quelltext kenntlich machen. Du kannst dazu im Link zur aktuellen Seite eine ID setzen oder das Attribut
href
weglassen. In beiden Fällen musst du dazu entweder bei statischen Seiten den HTML-Quelltext anpassen oder mit einer Programmiersprache die nötigen Änderungen einfügen. Auf dem Server kämen dazu zum Beispiel PHP, Python oder Perl infrage, im Browser selbst natürlich JavaScript. Die Endung.html
lässt mich statische Seiten vermuten. Ist diese Annahme korrekt?
Jawohl. Es handelt sich nicht um eine dynamische, damit also um eine statische Seite
Im CSS kannst du einen Link mit einer ID als
a#deineID {}
ansprechen. Bei weggelassenem Atttributhref
ist das etwas aufwendiger. Du kannst diese Konstruktion auf verschiedene Arten ansprechen.
- du kannst mit
… a:not([href]) {}
die expliziten Formatierungen für die aktuell geladene Seite notieren, die Formatierungen für „echte“ Links sollten vorher notiert sein- du kannst aber auch erst einmal die für die aktive Seite nötigen Formatierungen mit
… a {}
festlegen und für alle Links mithref
hernach, soweit nötig, diese mit… a:link {}
,a:visited {}
,a:focus,a:hover {}
unda:active {}
überschreiben
Entschuldige Auge, Du hast offensichtlich verstanden, was zu tun ist, aber ich kann Dir noch nicht folgen.
Ich versuche mal mit meinen Worten wiederzugeben, was ich (glaube) verstanden zu haben.
-
CSS ist eigentlich nicht das Mittel der Wahl (für meinen Fall), aber in Verbindung mit Änderungen bei den Links im HTML und Erweiterungen im CSS würde es funktionieren.
-
Da ich eine statische Seite betreibe, nehme ich Änderungen im HTML vor.
Aber folgendes ist mir unklar:
-
Was sind "echte Seiten" und wie notiere ich deren Formatierungen?
-
Ich muss vermutlich im CSS neue "Klassen" definieren? Wie das korrekt geht, weiß ich aber ehrlich gesagt, nicht. Ich definiere eine CSS-Klasse als so etwas:
.center { max-width: 840px; margin: auto; }
Da habe ich mich korrekt ausgedrückt?