2009-08-26 15 views
17

Jak zastosować czcionkę color tylko dla hiperłączy, które już zostały oznaczone jako visited i są przez mysz oznaczone jako hover?CSS - a: odwiedzony: hover?

Zasadniczo, co chcę zrobić, to

a:visited:hover {color: red} 
+0

Wygląda na to, że działa w trybie FF, ale nie w wersji IE 6. Jakieś prace związane z IE 6? –

Odpowiedz

18

Tak jest to możliwe.

Oto przykład:

<style type="text/css"> 
    a:link:hover {background-color:red} 
    a:visited:hover {background-color:blue} 
</style> 

<a href="http://www.google.com/">foo</a><a href="http://invalid/">bar</a> 
+0

Jest obsługiwany we wszystkich przeglądarkach. Wydaje się nie działać w Firefox 3.5 –

+0

Pracował dla mnie na FFox 3.5 i IE7, ale nie IE6. – jimyi

+0

Wygląda na to, że działa w wersji FF 3.5. Wszelkie prace związane z IE 6? –

1

istnieje sekwencja pomiędzy łącza css odniosły skutek .. : hover musi pochodzić po: link i: visited a: active musi pochodzić po: unoszą więcej szczegółów patrz link poniżej ..

http://www.w3schools.com/css/css_pseudo_classes.asp

+1

Chociaż ogólnie jest to dobra rada, nie dotyczy to tego pytania. Nie ma nic w pytaniu o kolejność (lub istnienie) innych pseudo zastosowanych do elementów i "a: visited: hover" jest bardziej specyficzny niż którykolwiek z selektorów wymienionych w odpowiedzi (a pytanie nie jest reguła nie ma zastosowania w IE6, a nie na zasadzie nadpisania innych zasad). – Quentin

+0

Drogi Quentinie, doceniam twój komentarz, ale rozwiązanie, które publikuję, jest najczęstszym problemem, z którym boryka się wiele osób, nawet gdy napotykam ten sam problem z sekwencją po poprawieniu go i opublikowałem go, ponieważ inni ludzie nie napotykają tego samego problemu. – user3110896

+0

Chociaż jest to powszechny problem, nie jest to problemem, o który pytano. – Quentin

0

FWIW, nie udało mi się styl tylko color na a:visited:hover (Chrome/FF) bez wypowiedzenia tło dla :link:hover (wszystko inne niż none lub inherit wydaje się działać, użyłem rgba() dla alfa sake).

Aby to działało w Chrome/FF:

a:visited:hover { 
    color: #f00; 
} 

... (coś) musi być obecny:

a:link:hover { 
    background-color: rgba(255, 255, 255, 0); 
} 
1

Jest kolejność deklaracja css do tego, aby działać poprawnie jak wspomniano wcześniej, chociaż nie dotyczyło to tej konkretnej opcji, to robi różnicę. Testowałem to w Chrome.

Kolejność jest

a:link { color: red; } 
    a:visited { color: blue; } 
    a:visited:hover { color: yellow; } 
    a:hover { color: green; } 
    a:active { color: gray; } 

Będzie działać czy chodzi przed lub po: hover, o ile zarówno: hover i: visited: hover są po: visited a przed: aktywny. Po prostu wolę trzymać razem dwa odwiedzone linki, a te dwa razem się trzymają.