Pseudo-Klasse- Eig. nach visited verschwindet nicht nach Refresh
noob
- css
0 Beat1 Der Martin
Hallo.
Ganz easy.
Ich habe nen Link.
der ist BLAU (:link)
wenn ich darüber gehe, wird er grün (:hover),
wenn ich ihn auswöhle, wird er auch grün (:focus),
wenn ich darauf klicke und gedrückt halte ist er grün (:active)
wenn ich nun loslasse und er auf den link geht (target='_blank'), bleibt er grün (:visited).
Wenn ich nun F5 drücke und die Seite neu geladen wird - bleibt er grün. Warum?
Ich möchte, das wenn ich F5 drücke, also die Seite refreshe, der Link wieder BLAU ist.
Ich möchte aber, wenn mehrere Links untereinanderstehen, alle Links grün sind die angeklickt wurden... erst beim refresehen der Seite sollen sie wieder blau sein.
a.meinlink {color:#069}
a.meinlink:link {color:#069}
a.meinlink:visited {color:#0C3}
a.meinlink:active {color:#069}
a.meinlink:hover {color:#069}
a.meinlink:focus {color:#0C3}
ich weiß nicht weiter,#
grüße au schwandorf,
der noob
Ich habe nen Link.
der ist BLAU (:link)
wenn ich darüber gehe, wird er grün (:hover),
Das entspricht nicht deinem unteren CSS.
womöglich hat er auch den Focus
wenn ich ihn auswöhle, wird er auch grün (:focus),
Das ist nachvollziehbar.
wenn ich darauf klicke und gedrückt halte ist er grün (:active)
:Forcus überschreibt :active weil später notiert.
wenn ich nun loslasse und er auf den link geht (target='_blank'), bleibt er grün (:visited).
Wie notiert. aber nicht wegen :visited, sondern weil der Link immer noch den Focus hat.
Wenn ich nun F5 drücke und die Seite neu geladen wird - bleibt er grün. Warum?
weil jetzt :visited gilt, denn der Link hat keinen :focus, keinen :hover und keinen :active Zustand
Ich möchte, das wenn ich F5 drücke, also die Seite refreshe, der Link wieder BLAU ist.
Nein. Ein Refresh löscht nicht die Browser-history, welche den :visited Zustand definiert.
Ich möchte aber, wenn mehrere Links untereinanderstehen, alle Links grün sind die angeklickt wurden... erst beim refresehen der Seite sollen sie wieder blau sein.
Refresh wird nicht reichen, denn die Browser-History definiert, was :visited ist.
Du musst schon mit Javascript onclick eine Klasse setzen, um eine unabhängigen Zustand zu definieren.
a.meinlink {color:#069}
a.meinlink:link {color:#069}
a.meinlink:visited {color:#0C3}
a.meinlink:active {color:#069}
a.meinlink:hover {color:#069}
a.meinlink:focus {color:#0C3}
mfg Beat
--
><o(((°> ><o(((°>
<°)))o>< ><o(((°>o
Der Valigator leibt diese Fische
Hi,
Ich habe nen Link.
der ist BLAU (:link)
wenn ich darüber gehe, wird er grün (:hover),
wenn ich ihn auswöhle, wird er auch grün (:focus),
wenn ich darauf klicke und gedrückt halte ist er grün (:active)
wenn ich nun loslasse und er auf den link geht
wer ist "er" und was bedeutet "wenn [...] er auf den Link geht"?
Wenn ich nun F5 drücke und die Seite neu geladen wird - bleibt er grün. Warum?
Selbstverständlich: Auch wenn du die Seite neu lädst, gilt :visited immer noch. Das ist ja der Sinn der Sache.
Ich möchte, das wenn ich F5 drücke, also die Seite refreshe, der Link wieder BLAU ist.
Dann musst du (je nach Browser) den Cache oder die History oder beides löschen, damit dein Browser nicht mehr "weiß", dass das Linkziel schon besucht ist.
Ich möchte aber, wenn mehrere Links untereinanderstehen, alle Links grün sind die angeklickt wurden... erst beim refresehen der Seite sollen sie wieder blau sein.
Das geht mit CSS allein nicht - du kannst natürlich mit Javascript nachhelfen: Gib den Links einen onclick-Handler, in dem du die Farbe (this.style.color) auf den gewünschten Wert setzt. Bedenke aber, dass viele Nutzer die Markierung besuchter Links durch den Browser als sehr hilfreich betrachten. Denen würdest du damit eine wichtige Information wegnehmen.
So long,
Martin