transition

Baseline Widely available *

This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015.

* Some parts of this feature may have varying levels of support.

Experimental: Esta es una tecnología experimental
Comprueba la Tabla de compabilidad de navegadores cuidadosamente antes de usarla en producción.

Sumario

La propiedad transition es una propiedad abreviada de transition-property, transition-duration, transition-timing-function, y transition-delay. Permite definir la transición entre dos estados de un elemento. Hay diferentes estados que pueden ser definidos utilizando pseudo-clases como :hover o :active o aplicado dinámicamente usando JavaScript.

Valor inicialas each of the properties of the shorthand:
Applies totodos los elementos y los pseudoelementos ::before y ::after
Heredableno
Valor calculadoas each of the properties of the shorthand:
Animation typeNot animatable

Sintaxis

css
/* Aplicar a 1 propiedad */
/* nombre de la propiedad | duración */
transition: margin-left 4s;

/* nombre de la propiedad | duración | retardo */
transition: margin-left 4s 1s;

/* nombre de la propiedad | duración | función | retardo */
transition: margin-left 4s ease-in-out 1s;

/* Aplicar a 2 propiedades */
transition:
  margin-left 4s,
  color 1s;

/* Aplicar a todas las propiedades que cambien */
transition: all 0.5s ease-out;

Nótese que el orden es importante dentro de los elementos de la propiedad. El primer valor que puede ser analizado como tiempo es asignado a la propiedad transition-duration, y el segundo valor que puede ser analizado como tiempo es asignado a la propiedad transition-delay.

Véase cuando la lista de valores de propiedades son de diferentes tamaños para más detalles de cómo se manejan las cosas cuando la lista de valores de propiedades no son de tamaños iguales. En resumen, las descripciones extras más allá del número de propiedades que son animadas son ignoradas.

Sintaxis formal

transition = 
<single-transition>#

<single-transition> =
[ none | <single-transition-property> ] ||
<time> ||
<easing-function> ||
<time>

<single-transition-property> =
all |
<custom-ident>

<easing-function> =
<linear-easing-function> |
<cubic-bezier-easing-function> |
<step-easing-function>

<linear-easing-function> =
linear |
<linear()>

<cubic-bezier-easing-function> =
ease |
ease-in |
ease-out |
ease-in-out |
<cubic-bezier()>

<step-easing-function> =
step-start |
step-end |
<steps()>

<linear()> =
linear( [ <number> && <percentage>{0,2} ]# )

<cubic-bezier()> =
cubic-bezier( [ <number [0,1]> , <number> ]#{2} )

<steps()> =
steps( <integer> , <step-position>? )

<step-position> =
jump-start |
jump-end |
jump-none |
jump-both |
start |
end

Ejemplos

Hay muchos ejemplos de transiciones CSS en el artículo principal CSS transitions.

Especificaciones

Specification
CSS Transitions
# transition-shorthand-property

Compatibilidad con navegadores

Report problems with this compatibility data on GitHub
desktopmobile
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
transition
Gradients can be animated
transition-behavior value

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support
In development. Supported in a pre-release version.
In development. Supported in a pre-release version.
No support
No support
See implementation notes.
Requires a vendor prefix or different name for use.
Has more compatibility info.

Véase también