Existe alguma maneira de fazer o oposto de :hover
usar apenas CSS? Como em: se :hover
for on Mouse Enter
, há um CSS equivalente a on Mouse Leave
?
Exemplo:
Eu tenho um menu HTML usando itens de lista. Quando passo o mouse sobre um dos itens, há uma animação em cores CSS de #999
a black
. Como posso criar o efeito oposto quando o mouse sai da área do item, com uma animação de black
a #999
?
(Lembre-se de que não desejo responder apenas a este exemplo, mas a toda a questão do "oposto de :hover
".)
:hover
é simplesmente:not(:hover)
; entretanto, não:hover
é sinônimo de nem igual a . CSS não tem nenhum conceito de eventos DOM.onmouseenter
:not(:hover)
onmouseleave
:hover
significa simplesmente "um elemento que tem um ponteiro do mouse sobre ele". Não indica se o ponteiro do mouse fez a transição de outro elemento para este elemento. Significa apenas que o ponteiro do mouse está atualmente no elemento.:not(:hover)
será aplicado. Aqui está uma demonstração: jsfiddle.net/BoltClock/rghBXRespostas:
Se bem entendi, você poderia fazer a mesma coisa movendo suas transições para o link em vez do estado de foco:
http://jsfiddle.net/spacebeers/sELKu/3/
A definição de pairar é:
Por essa definição, o oposto de pairar é qualquer ponto em que o mouse não esteja sobre ele. Alguém muito mais inteligente do que eu fez este artigo, definindo diferentes transições em ambos os estados - http://css-tricks.com/different-transitions-for-hover-on-hover-off/
fonte
:hover
que você citou é da W3Schools, que não é de forma alguma uma fonte confiável. A especificação real pode ser encontrada em w3.org/TR/CSS21/selector.html#dynamic-pseudo-classes , embora não seja a explicação mais acessível.Basta usar transições CSS em vez de animações.
Demonstração ao vivo
fonte
:hover
estado.Não, não há propriedade explícita para a licença do mouse em CSS.
Você pode usar: hover sobre todos os outros elementos, exceto o item em questão, para obter esse efeito. Mas não tenho certeza de como isso seria prático.
Acho que você tem que olhar para uma solução JS / jQuery.
fonte
Você pode usar a transição CSS3
Alguns bons links:
http://css-tricks.com/different-transitions-for-hover-on-hover-off/
http://www.alistapart.com/articles/understanding-css3-transitions/
fonte
Embora as respostas aqui sejam suficientes, eu realmente acho que o exemplo da W3Schools sobre esse assunto é muito simples (ele esclareceu a confusão (para mim) imediatamente).
Em resumo, para transições em que você deseja que as animações de "entrada" e "saída" sejam as mesmas, é necessário empregar transições no seletor principal em
.button
vez de no seletor de foco.button:hover
. Para transições em que deseja que as animações de "entrada" e "saída" sejam diferentes, você precisará especificar diferentes transições do seletor principal e do seletor de foco.fonte
Coloque seu tempo de duração na seleção sem foco:
fonte
Basta adicionar uma transição ao elemento com o qual você está mexendo. Esteja ciente de que pode haver alguns efeitos quando a página carrega. Como se você fizesse uma mudança no raio da borda, você verá quando o dom carregar.
fonte
Você entendeu mal
:hover
; diz que o mouse está sobre um item, em vez de o mouse acabou de entrar no item.Você pode adicionar animação ao seletor sem
:hover
obter o efeito desejado.Transições é uma opção melhor: http://jsfiddle.net/Cvx96/
fonte
O oposto de
:hover
parece ser:link
.(edit: não tecnicamente um oposto, porque existem 4 seletores
:link
,:visited
,:hover
e:active
Cinco se você incluir.:focus
).Por exemplo, ao definir uma regra
.button:hover{ text-decoration:none }
para remover o sublinhado em um botão, o sublinhado aparece quando você rola o botão para fora em alguns navegadores. Eu consertei isso com.button:hover, .button:link{ text-decoration:none }
É claro que isso só funciona para elementos que são realmente links (têm o atributo href)
fonte
:link
apenas seleciona links, simples assim. Veja aqui a definição de:link
: developer.mozilla.org/en-US/docs/Web/CSS/%3AlinkBasta adicionar uma transição e o nome da animação na classe inicial, no seu caso, ul li a, basta adicionar uma propriedade "transição" e isso é tudo que você precisa
fonte