2013-08-28 15 views
5

Nie jestem pewien, czy jest to możliwe, ale tutaj jest to, co robiłam:Zastosuj przejścia na: hover nie: aktywny

a { 
    background-color: white; 
    transition: all 1s; 
} 

a:hover { 
    background-color: grey; 
} 

a:active { 
    background-color: black; 
} 

Ale chciałbym przejścia nie stosuje się na: aktywne (tylko na the: hover), próbowałem tego:

a { 
    background-color: white; 
} 

a:hover { 
    background-color: grey; 
    transition: all 1s; 
} 

a:active { 
    background-color: black; 
} 

A wynik jest dokładnie taki sam (z tym wyjątkiem, że efekt nie jest odwrócony). Czy można to zrobić w pełnym CSS.

Dzięki!

+0

mogę myśleć tylko o zastosowaniu przejścia do 'a: not (: active)', ale to co powinno się zdarzyć, gdy przejścia elementu od ': active' do': hover' po zwolnieniu myszy, gdy wciąż uaktywniasz element? – BoltClock

+0

Tak, to jest rozwiązanie. Po ': active' po prostu wraca do stanu': hover' (natychmiast). Ale tego właśnie chcemy, używając ': active', aby zobaczyć wydarzenie click. Dzięki – Cohars

+0

Problem polega na tym, że animacja z powrotem do ': hover' zamiast natychmiastowej zmiany, ponieważ przejście jest zdefiniowane dla': hover' (pamiętaj, że mówimy o stanach, a nie zdarzeniach, w CSS). Jeśli to nie ma dla ciebie znaczenia, wtedy opublikuję odpowiedź. – BoltClock

Odpowiedz

4
a { 
    background-color: white; 
    transition: all 1s; 
} 

a:hover { 
    background-color: grey; 
} 

a:active { 
    background-color: black; 
    transition: none; 
} 

markup:

<menu type=list> 
    <li><a>home</a></li> 
    <li><a>work</a></li> 
    <li><a>contact</a></li> 
    <li><a>about</a></li> 
</menu> 

demo: http://jsfiddle.net/7nwLF/

+0

Te "! Important's nie są potrzebne. – BoltClock

+0

prawda, ale to tylko ze względów bezpieczeństwa –

+0

Cóż, to było całkiem proste. Dziękuję Ci bardzo! To pozwala na przejście z ': active' na': hover'states, co daje fajny efekt! – Cohars