Der Martin: Nichtlinkelemente mit :hover :visited :active etc stylen

Beitrag lesen

Hallo,

wie gesagt, wie greift man auf die Pseudeklassen von a zu, hab es über className="visited" probiert, hat aber nicht funktioniert, wie ist es richtig?

überhaupt nicht. Über die Eigenschaft className kannst du zwar die "echten" Klassen auslesen und setzen. An die Pseudoklassen kommst du aber nicht ran, die werden ja vom Browser kontextabhängig gesetzt.

im Quelltext deutlich zu sehen, sind die Zellinhalte der Tabelle sämtlich von a-Elementen eingeschlossen, d.h. ohne tr:hover... verhalten sich die Tabellenzeilen durchaus als besucht, weil die Ziele aller Zellen einer Zeile gleich sind ;-),

Soweit kann ich folgen.

das betrifft natürlich auch die Pseudoklasse :active.

Nein, da irrst du. Besucht sein können natürlich alle Links, aktiv (also momentan ausgelöst) kann aber immer nur *höchstens einer* sein, ebenso wie focussiert. Wann gilt :active? Genau, vom Niederdrücken bis zum Loslassen der Maustaste, bzw. vom Auslösen des Links per Tastatur bis zur Bearbeitung des Tastendrucks durch den Browser.

Nur beim hovern verhält sich nicht die Zeile als ein Link, sondern nur die jeweils gehoverte Zelle.

Richtig, denn auch :hover kann nur für *höchstens einen* Link gelten.

[...] gehe ich dann aber über eine solche Zeile, sieht sie danach aus wie ein unbesuchter Link.

Dann stimmt mit deinem Javascript und dessen automatischer Klassenkorrektur etwas nicht.

da dies aber nicht funktioniert, wüßte ich gern, wie man auf die Pseudoklassen des a-Elements mit js zugreift.

Wie schon gesagt: Es geht nicht. Diese Information ist ausschließlich browserintern verfügbar.

Ich hab natürlich im css visited Formatierungen vorgenommen, diese werden aber wie gesagt von den oben angegebenen hover Formatierungen gelöscht,

Sicher, du überschreibst ja im onmouseover-Handler auch die vorherigen Werte, ohne sie zu speichern. Dann kannst du natürlich beim onmouseout nicht den alten Wert wiederherstellen, sondern nur einen festen Wert eintragen.

nach dem hovern verschwindet die visited-Information in den Nicht-IE-Browsern, die ich hier zum Probieren hab. Ich vermute, dass da etwas ähnliches passiert, wie bei meinem js.

Da muss ich allerdings auch passen.

ps: ich will auch die dritte Frage nicht ganz unter den Tisch fallen lassen, schließlich gibt sie ja dem thread den Namen: gibt es außer dem a-Element noch anderen Elemente, für die sämtliche Pseudoklassen verfügbar sind?

Nein. AFAIK sind :link, :visited und :active nur für Links definiert, :focus zusätzlich für Formularelemente, und :hover für alle (außer im IE).

So long,
 Martin

--
Ja, ja... E.T. wusste schon, warum er wieder nach Hause wollte.