CSS3 Gradientes


Efectos de gradiente

Los gradientes CSS3 te permiten mostrar una transición suave entre dos o más colores especificados.

Antes, tenías que usar imágenes para lograr estos efectos. Sin embargo, mediante el uso de gradientes CSS3, puedes reducir el tiempo de descarga y el uso de ancho de banda. Además, los elementos con efectos de gradiente se ven mejor al ampliarlos, porque el gradiente es generado por el navegador.

CSS3 define dos tipos de gradientes:

  • Gradientes lineales (Linear Gradients) - hacia abajo / hacia arriba / hacia la izquierda / hacia la derecha / en diagonal
  • Gradientes radiales (Radial Gradients) - definidos por su centro

Propiedades relacionadas con los gradientes lineales:background-image。

Herramienta en línea de gradientes lineales:Herramienta en línea de gradientes.


Soporte del navegador

Los números de la tabla indican la primera versión del navegador que es totalmente compatible con la propiedad.

Propiedad
background-image 1.0 4.0 1.0 1.0 3.5

Nota:Los navegadores IE8 y versiones anteriores de IE no son compatibles con esta propiedad.



Gradientes lineales CSS3

Para crear un gradiente lineal, debes definir al menos dos nodos de color. Los nodos de color son los colores entre los cuales deseas una transición suave. Además, puedes establecer un punto de inicio y una dirección (o un ángulo).

Ejemplo de gradiente lineal:

线性渐变

Sintaxis

background-image: linear-gradient(direction, color-stop1, color-stop2, ...);

Gradiente lineal - de arriba hacia abajo (por defecto)

El siguiente ejemplo demuestra un gradiente lineal que comienza desde arriba. El punto de inicio es rojo y transiciona lentamente a azul:

Ejemplo

Gradiente lineal de arriba a abajo:

#grad { background-image: linear-gradient(#e66465, #9198e5); }

Pruébalo »

Gradiente lineal - de izquierda a derecha

El siguiente ejemplo demuestra un gradiente lineal que comienza desde la izquierda. El punto de inicio es rojo y transiciona lentamente a amarillo:

Ejemplo

Gradiente lineal de izquierda a derecha:

#grad { height: 200px; background-image: linear-gradient(to right, red , yellow); }

Pruébalo »

Gradiente lineal - diagonal

Puedes crear un gradiente diagonal especificando las posiciones iniciales horizontal y vertical.

El siguiente ejemplo demuestra un gradiente lineal que comienza desde la esquina superior izquierda (hasta la esquina inferior derecha). El punto de inicio es rojo y transiciona lentamente a amarillo:

Ejemplo

Gradiente lineal desde la esquina superior izquierda a la esquina inferior derecha:

#grad { height: 200px; background-image: linear-gradient(to bottom right, red, yellow); }

Pruébalo »


Usando ángulos

Si deseas tener más control sobre la dirección del gradiente, puedes definir un ángulo en lugar de una dirección predefinida (to bottom, to top, to right, to left, to bottom right, etc.).

Sintaxis

background-image: linear-gradient(angle, color-stop1, color-stop2);

El ángulo es el ángulo entre la línea horizontal y la línea de gradiente, calculado en sentido antihorario. En otras palabras, 0deg creará un gradiente de abajo hacia arriba, y 90deg creará un gradiente de izquierda a derecha.

Sin embargo, ten en cuenta que muchos navegadores (Chrome, Safari, Firefox, etc.) usaban el estándar antiguo, es decir, 0deg creaba un gradiente de izquierda a derecha, y 90deg creaba un gradiente de abajo hacia arriba. Fórmula de conversión90 - x = yDonde x es el ángulo estándar e y es el ángulo no estándar.

El siguiente ejemplo demuestra cómo usar ángulos en un gradiente lineal:

Ejemplo

Gradiente lineal con un ángulo especificado:

#grad { background-image: linear-gradient(-90deg, red, yellow); }

Pruébalo »


Usando múltiples nodos de color

El siguiente ejemplo demuestra cómo configurar múltiples nodos de color:

Ejemplo

Gradiente lineal de arriba a abajo con múltiples nodos de color:

#grad { background-image: linear-gradient(red, yellow, green); }

Pruébalo »

El siguiente ejemplo demuestra cómo crear un gradiente lineal con colores de arcoíris y texto:

Ejemplo

#grad { /*Sintaxis estándar*/ background-image: linear-gradient(to right, red,orange,yellow,green,blue,indigo,violet); }

Pruébalo »


Usando transparencia (transparent)

Los gradientes CSS3 también son compatibles con la transparencia (transparent), que se puede usar para crear efectos de desvanecimiento.

Para agregar transparencia, usamos la función rgba() para definir los nodos de color. El último parámetro de la función rgba() puede ser un valor de 0 a 1, que define la transparencia del color: 0 significa completamente transparente, 1 significa completamente opaco.

El siguiente ejemplo demuestra un gradiente lineal que comienza desde la izquierda. El punto de inicio es completamente transparente y transiciona lentamente a rojo completamente opaco:

Ejemplo

Gradiente lineal de izquierda a derecha con transparencia:

#grad { background-image: linear-gradient(to right, rgba(255,0,0,0), rgba(255,0,0,1)); }

Pruébalo »


Gradiente lineal repetido

La función repeating-linear-gradient() se usa para repetir gradientes lineales:

Ejemplo

Un gradiente lineal repetido:

#grad { /*Sintaxis estándar*/ background-image: repeating-linear-gradient(red, yellow 10%, green 20%); }

Pruébalo »


Gradientes radiales CSS3

El gradiente radial se define por su centro.

Para crear un gradiente radial, también debes definir al menos dos nodos de color. Los nodos de color son los colores entre los cuales deseas una transición suave. Además, puedes especificar el centro, la forma (círculo o elipse) y el tamaño del gradiente. De forma predeterminada, el centro del gradiente es center (representa el punto central), la forma del gradiente es ellipse (representa una elipse), y el tamaño del gradiente es farthest-corner (representa la esquina más lejana).

Ejemplo de gradiente radial:

Radial gradient

Sintaxis

background-image: radial-gradient(shape size at position, start-color, ..., last-color);

Gradiente radial - nodos de color distribuidos uniformemente (por defecto)

Ejemplo

Gradiente radial con nodos de color distribuidos uniformemente:

#grad { background-image: radial-gradient(red, yellow, green); }

Pruébalo »

Gradiente radial - nodos de color distribuidos de manera desigual

Ejemplo

Gradiente radial con nodos de color distribuidos de manera desigual:

#grad { background-image: radial-gradient(red 5%, yellow 15%, green 60%); }

Pruébalo »


Configurar la forma

El parámetro shape define la forma. Puede ser el valor circle o ellipse. Aquí, circle representa un círculo, ellipse representa una elipse. El valor predeterminado es ellipse.

Ejemplo

Gradiente radial con forma de círculo:

#grad { background-image: radial-gradient(circle, red, yellow, green); }

Pruébalo »


Uso de palabras clave de diferentes tamaños

El parámetro size define el tamaño del gradiente. Puede ser uno de los siguientes cuatro valores:

  • closest-side
  • farthest-side
  • closest-corner
  • farthest-corner

Ejemplo

Gradiente radial con diferentes palabras clave de tamaño:

#grad1 { background-image: radial-gradient(closest-side at 60% 55%, red, yellow, black); } #grad2 { background-image: radial-gradient(farthest-side at 60% 55%, red, yellow, black); }

Pruébalo »


Gradiente radial repetido

La función repeating-radial-gradient() se usa para repetir gradientes radiales:

Ejemplo

Un gradiente radial repetido:

#grad { background-image: repeating-radial-gradient(red, yellow 10%, green 15%); }

Pruébalo »
Otras extensiones