Transition de la couleur de fond


286

J'essaie de faire un effet de transition avec le background-colorsurvol des éléments de menu, mais cela ne fonctionne pas. Voici mon code CSS:

#content #nav a:hover {
    color: black;
    background-color: #AD310B;
    /* Firefox */
    -moz-transition: all 1s ease-in;
    /* WebKit */
    -webkit-transition: all 1s ease-in;
    /* Opera */
    -o-transition: all 1s ease-in;
    /* Standard */
    transition: all 1s ease-in;
}

Il #nav divs'agit d'une ulliste de menus d'éléments.


Juste pour info, cela fonctionne maintenant dans Firefox. Testé en FF9.
— C.Brown

Réponses:


527

Pour autant que je sache, les transitions fonctionnent actuellement dans Safari, Chrome, Firefox, Opera et Internet Explorer 10+.

Cela devrait produire un effet de fondu pour vous dans ces navigateurs:

a {
    background-color: #FF0;
}

a:hover {
    background-color: #AD310B;
    -webkit-transition: background-color 1000ms linear;
    -ms-transition: background-color 1000ms linear;
    transition: background-color 1000ms linear;
}
<a>Navigation Link</a>

Remarque: Comme l'a souligné Gerald dans les commentaires, si vous placez la transition sur le a, au lieu de sur, a:hoverelle se fondra à la couleur d'origine lorsque votre souris s'éloignera du lien.

Cela pourrait également être utile: Principes de base de CSS: Transitions CSS 3


38
Vous pouvez également insérer les transitions dans content #nav apour revenir à l'original lorsque l'utilisateur éloigne la souris du lien.
— gak

2
Jouez avec les transitions de vol stationnaire et de clic sur: jsfiddle.net/K5Qyx
— Dem Pilafian

3
Ne serait-il pas préférable de mettre le transition:dans le non-vol stationnaire? Je pense qu'à chaque fois que l'utilisateur survole, la transition est compilée ..
— Matej

1
@Illium Link est mort
— ferdynator

2
Le CSS transitionne peut apparemment pas gérer la couleur du type "gradient linéaire" comme on peut le tester ici . Et btw, la réponse de @ Ilium mérite d'être marquée comme solution.
— Stacky

86

Pour moi, il est préférable de mettre les codes de transition avec les sélecteurs d'origine / minimum qu'avec le: hover ou tout autre sélecteur supplémentaire:

#content #nav a {
    background-color: #FF0;
    
    -webkit-transition: background-color 1000ms linear;
    -moz-transition: background-color 1000ms linear;
    -o-transition: background-color 1000ms linear;
    -ms-transition: background-color 1000ms linear;
    transition: background-color 1000ms linear;
}

#content #nav a:hover {
    background-color: #AD310B;
}
<div id="content">
    <div id="nav">
        <a href="#link1">Link 1</a>
    </div>
</div>


8
Ce n'est pas que ce soit mieux ou pire. C'est juste que si vous spécifiez la transition sur l'élément lui-même, il sera animé lorsque l'élément sera survolé et lorsqu'il sera "non survolé". Alors que si vous l'appliquez au: hover, vous aurez une animation quand la souris entre, mais pas quand elle sort.
— LucasBeef

6
Cette solution est globalement meilleure. L'effet de transition devrait et devrait s'atténuer en vol stationnaire et disparaître en flou.
— Chizzle
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.