Transición de color de fondo


286

Estoy tratando de hacer un efecto de transición background-coloral pasar el cursor sobre los elementos del menú, pero no funciona. Aquí está mi código 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;
}

El #nav dives una ullista de menú de elementos.


Solo para tu información, esto funciona en Firefox ahora. Probado en FF9.
C.Brown

Respuestas:


526

Hasta donde yo sé, las transiciones funcionan actualmente en Safari, Chrome, Firefox, Opera e Internet Explorer 10+.

Esto debería producir un efecto de desvanecimiento para usted en estos navegadores:

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>

Nota: Como señaló Gerald en los comentarios, si coloca la transición en a, en lugar de a:hoverhacerlo, se desvanecerá al color original cuando el mouse se aleje del enlace.

Esto también puede ser útil: Fundamentos de CSS: Transiciones CSS 3


38
También puede colocar las transiciones en content #nav apara volver al original cuando el usuario aleja el mouse del enlace.
gak

2
Violín con la libración y clic transiciones en: jsfiddle.net/K5Qyx
Dem Pilafian

3
¿No sería mejor poner transition:el no-hover? Creo que cada vez que el usuario se desplaza, la transición se compila ..
Matej

1
@Illium Link está muerto
ferdynator

2
Al transitionparecer, CSS no puede manejar el color del tipo "gradiente lineal" como se puede probar aquí . Y por cierto, la respuesta de @ Ilium merece ser marcada como solución.
Stacky

83

Para mí, es mejor poner los códigos de transición con los selectores originales / mínimos que con: hover o cualquier otro selector adicional:

#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
No es que sea mejor o peor. Es solo que si especifica la transición en el elemento en sí, se animará cuando el elemento quede suspendido y cuando no esté "activado". Mientras que si lo aplicas al: hover, tendrás una animación cuando el mouse entre, pero no cuando salga.
LucasBeef

66
Esta solución es en general mejor. El efecto de transición debería y debería esperarse que se desvanezca al pasar el mouse y se desvanezca en el desenfoque.
Chizzle
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.