CSS3

CSS

Tutorial CSS: Propiedades de fondo

CSS propiedades fondo: definición y uso. Domina el uso de propiedades de fondo en CSS con ejemplos prácticos y detallados.

¿Qué son las propiedades de fondo en CSS y para qué sirven?

Las propiedades de fondo en CSS son un conjunto de atributos que permiten definir el aspecto visual del fondo de un elemento HTML. Estas propiedades hacen posible ajustar diferentes características del fondo, como el color, la imagen, la repetición de la imagen, la posición y el tamaño de la misma, entre otras particularidades. Aplicar correctamente las propiedades de fondo en un diseño web es esencial para mejorar la experiencia de usuario, hacerse cargo de cuestiones estéticas y acceder a funcionalidades avanzadas como la implementación de gradientes. Las principales propiedades de fondo en CSS incluyen:

  • background-color: Permite definir el color del fondo de un elemento.
  • background-image: Permite establecer una imagen de fondo para un elemento.
  • background-repeat: Controla la forma en que se repite una imagen de fondo.
  • background-position: Determina la posición inicial de la imagen de fondo dentro del elemento.
  • background-size: Define el tamaño que se le va a dar a la imagen de fondo.
  • background-attachment: Establece si la imagen de fondo se desplaza junto con el resto del contenido de la página cuando se hace scroll o si permanece fija.
  • background-clip: Indica si el área de pintura de fondo se extiende por todo el cuadro del borde, el padding o el contenido.
  • background-origin: Establece el punto de origen del área de pintura del fondo.
  • background: Es una propiedad abreviada que permite definir algunas de las propiedades mencionadas en una sola declaración.

El uso correcto de estas propiedades permite crear fondos personalizados que pueden ser tanto estáticos como dinámicos (usando gradientes). Aprovechando estas herramientas, los desarrolladores pueden desarrollar interfaces de usuario visualmente atractivas y funcionales, dependiendo de las necesidades específicas de su proyecto. Aquí un ejemplo básico de uso:

.elemento {
    background-color: #f0f0f0; /* Color de fondo */
    background-image: url('imagen.jpg'); /* Imagen de fondo */
    background-repeat: no-repeat; /* Sin repetición */
    background-position: center; /* Centrada */
    background-size: cover; /* Cubrir todo el contenido */
    background-attachment: fixed; /* Fondo fijo */
    background-clip: padding-box; /* Solo caja de padding */
    background-origin: border-box; /* Origen en el borde */
}

En este ejemplo, todas las propiedades de fondo se combinan para crear un fondo muy específico. La propiedad background también puede abreviar múltiples propiedades en una sola línea de código:

.elemento {
    background: #f0f0f0 url('imagen.jpg') no-repeat center/cover fixed padding-box border-box;
}

De esta manera, se logra el mismo efecto usando la propiedad abreviada. Aprovechar el uso de estas propiedades puede conducir a interfaces adaptativas, manteniendo consistencia y estética desde pequeños teléfonos móviles hasta pantallas de alta resolución.

La propiedad background-color

La propiedad background-color en CSS permite especificar el color de fondo de un elemento HTML. Esta propiedad es fundamental y uno de los primeros pasos en la personalización visual de un diseño web. La sintaxis básica de background-color es simple y se puede utilizar de diferentes maneras, incluyendo valores de color en formato hexadecimal, RGB, RGBA, HSL, y HSLA, así como nombres de colores predefinidos.

Sintaxis básica

.elemento {
    background-color: <valor_de_color>;
}

Donde <valor_de_color> puede ser:

  • Un valor hexadecimal (por ejemplo, #ff0000 para rojo).
  • Un valor RGB (por ejemplo, rgb(255, 0, 0)).
  • Un valor RGBA, que incluye la opacidad (por ejemplo, rgba(255, 0, 0, 0.5)).
  • Un valor HSL (por ejemplo, hsl(0, 100%, 50%)).
  • Un valor HSLA, que incluye la opacidad (por ejemplo, hsla(0, 100%, 50%, 0.5)).
  • Un nombre de color inteligente (por ejemplo, red).

Ejemplo de uso con valores hexadecimales

.header {
    background-color: #3498db; /* Azul */
}

.footer {
    background-color: #2ecc71; /* Verde */
}

Ejemplo de uso con valores RGB y RGBA

.section {
    background-color: rgb(255, 165, 0); /* Naranja */
}

.transparent-section {
    background-color: rgba(255, 165, 0, 0.5); /* Naranja con 50% de opacidad */
}

Ejemplo de uso con valores HSL y HSLA

.main {
    background-color: hsl(120, 100%, 50%); /* Verde */
}

.faded-box {
    background-color: hsla(120, 100%, 50%, 0.3); /* Verde con 30% de opacidad */
}

Nombre de colores predefinidos

CSS también permite usar nombres de colores predefinidos. Por ejemplo:

.navbar {
    background-color: navy; /* Azul marino */
}

.button {
    background-color: goldenrod; /* Vara de oro */
}

Especificidad y herencia

La propiedad background-color es heredable, lo que significa que los elementos hijos pueden heredar el color de fondo del elemento padre si así se define explícitamente o por defecto. Por ejemplo:

.parent {
    background-color: lightgray;
}

.child {
    background-color: inherit; /* Hereda el color gris claro del elemento padre */
}

Consideraciones de accesibilidad

Al usar background-color, es esencial considerar la accesibilidad, garantizando suficiente contraste entre el color de fondo y el color del texto. Utilizar herramientas como el "Color Contrast Checker" ayuda a asegurar que el contenido sea legible para todos los usuarios, incluidas personas con discapacidades visuales.

Ejemplo avanzado integrando background-color

.card {
    background-color: #ffffff; /* Fondo blanco */
    padding: 1rem;
    border-radius: 8px;
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
}

.card-header {
    background-color: #f8f9fa; /* Fondo gris claro */
    font-size: 1.25rem;
    padding: 0.5rem 1rem;
}

.card-body {
    background-color: #ffffff; /* Fondo blanco */
    padding: 1rem;
    color: #333333;
}

.card-footer {
    background-color: #f1f1f1; /* Fondo gris muy claro */
    padding: 0.5rem 1rem;
    text-align: right;
}

En este ejemplo, una tarjeta (card) se estiliza usando diferentes colores de fondo para el encabezado, cuerpo y pie de página, creando una separación visual clara y agradable.

La propiedad background-image

La propiedad background-image en CSS permite establecer una o más imágenes de fondo para un elemento HTML. Esta propiedad puede aceptar varias URLs de imágenes, así como valores de gradiente (lineares y radiales), y su uso puede contribuir significativamente a mejorar el diseño visual de una página web. La sintaxis básica y algunas de sus características avanzadas se detallan a continuación.

Sintaxis básica

.elemento {
    background-image: url('imagen.jpg');
}

El valor url('imagen.jpg') indica la ubicación de la imagen. Esta URL puede ser relativa o absoluta.

Múltiples imágenes de fondo

Es posible definir múltiples imágenes de fondo para un mismo elemento. Las imágenes se listan separadas por comas, y la primera imagen será la que se renderice más cerca del usuario (al frente).

.elemento {
    background-image: url('imagen1.jpg'), url('imagen2.png');
}

Gradientes como fondo

CSS admite el uso de gradientes predefinidos, como linear-gradient y radial-gradient, que pueden usarse en lugar de las imágenes tradicionales.

.elemento {
    background-image: linear-gradient(to right, #ff7e5f, #feb47b);
}

.elemento-radial {
    background-image: radial-gradient(circle, #ff7e5f, #feb47b);
}

Ejemplo avanzado usando múltiples fondos con gradientes

Se pueden combinar imágenes y gradientes para crear efectos complejos.

.elemento {
    background-image: url('patron.png'), linear-gradient(to bottom, rgba(255, 255, 255, 0.5), rgba(0, 0, 0, 0.5));
    background-blend-mode: overlay;
}

En este ejemplo, se usa un patrón de imagen (patron.png) combinado con un gradiente lineal, y la propiedad background-blend-mode para mezclar ambos fondos.

Compatibilidad con múltiples versiones de imagen

Para mejorar la carga en diferentes dispositivos, se pueden definir diferentes versiones de la misma imagen, adaptadas a varias resoluciones.

.elemento {
    background-image: url('imagen.jpg');
    background-image: image-set(
        url('imagen-lowres.jpg') 1x,
        url('imagen-highres.jpg') 2x
    );
}

Imágenes vectoriales

Las imágenes en formaiconos to SVG pueden ser usadas como fondo. SVG es un formato vectorial y escalable, ideal para gráficos e que deban mantener la calidad en diversas resoluciones.

.elemento {
    background-image: url('imagen.svg');
}

Valores especiales

Ninguno

El valor none quita cualquier imagen de fondo previamente aplicada.

.elemento {
    background-image: none;
}

Ejemplo completo integrando diversas propiedades de fondo

Para ilustrar todas las capacidades de la propiedad background-image, aquí un ejemplo con varias propiedades combinadas:

.contenedor {
    width: 100%;
    height: 500px;
    background-image: url('background.jpg'), linear-gradient(to bottom, rgba(0,0,0,0.5), rgba(0,0,0,0.5));
    background-repeat: no-repeat, repeat-x;
    background-position: center, top;
    background-size: cover, contain;
}

En este ejemplo, se aplican dos fondos: una imagen (background.jpg) y un gradiente lineal. La imagen de fondo no se repite (no-repeat), mientras que el gradiente se repite horizontalmente (repeat-x); la imagen ocupa todo el contenedor (cover), y el gradiente se adapta (contain). Además, las posiciones de fondo están controladas de forma independiente (center para la imagen y top para el gradiente).

Sugerencias para el rendimiento

  • Optimización de imágenes: Usa imágenes optimizadas para la web, preferiblemente en formatos de compresión como JPEG o WebP.
  • Carga diferida: Considera la carga diferida (lazy loading) de imágenes para mejorar el rendimiento de la página.
  • Sprites CSS: Utiliza sprites CSS para combinar varias imágenes en un solo archivo, reduciendo las peticiones HTTP.

La propiedad background-repeat

La propiedad background-repeat en CSS controla cómo se repite una imagen de fondo dentro de un elemento. Permite especificar si la imagen se repetirá horizontalmente, verticalmente, en ambas direcciones o no se repetirá en absoluto. Esta propiedad es fundamental para diseños que utilizan imágenes de fondo, especialmente cuando se desea crear patrones o evitar la repetición de imágenes de gran tamaño.

Sintaxis básica

.elemento {
    background-repeat: <valor>;
}

Valores posibles

  • repeat: Repite la imagen tanto horizontalmente como verticalmente. Este es el valor por defecto.
  • repeat-x: Repite la imagen solamente en la dirección horizontal.
  • repeat-y: Repite la imagen solamente en la dirección vertical.
  • no-repeat: No repite la imagen, mostrará la imagen solo una vez.
  • space: Repite la imagen sin recortarla y dejará espacio entre las imágenes.
  • round: Escala la imagen para que se ajuste tanto horizontalmente como verticalmente al contenedor.

Ejemplos de uso

Repetición en ambas direcciones (valor por defecto)

.elemento {
    background-image: url('pattern.png');
    background-repeat: repeat;
}

Repetición horizontal solamente

.elemento {
    background-image: url('pattern.png');
    background-repeat: repeat-x;
}

Repetición vertical solamente

.elemento {
    background-image: url('pattern.png');
    background-repeat: repeat-y;
}

Sin repetición

.elemento {
    background-image: url('imagen.png');
    background-repeat: no-repeat;
}

Repetición con espacio entre las imágenes

.elemento {
    background-image: url('pattern.png');
    background-repeat: space;
}

Repetición con ajuste de escala

.elemento {
    background-image: url('pattern.png');
    background-repeat: round;
}

Ejemplo avanzado

.contenedor {
    width: 300px;
    height: 300px;
    background-image: url('pattern.png');
    background-repeat: repeat-x;
    background-position: center;
    background-size: 50px 50px;
}

En este ejemplo, la imagen de fondo se repite solo horizontalmente (repeat-x), se centra verticalmente (background-position: center), y se ajusta a un tamaño específico (background-size: 50px 50px).

Compatibilidad y soporte

La propiedad background-repeat es ampliamente soportada en todos los navegadores modernos y es parte de la especificación CSS1, por lo que se puede utilizar sin preocupaciones de compatibilidad en la mayoría de los proyectos web.

Consideraciones de diseño

Al utilizar background-repeat, es importante considerar el tamaño y la forma de la imagen para asegurar que se adapte correctamente al diseño deseado. Las imágenes de fondo repetidas pueden crear patrones visualmente atractivos, pero también pueden causar problemas de rendimiento si no se optimizan adecuadamente. Es recomendable usar imágenes ligeras y, si es posible, comprimidas para mejorar los tiempos de carga y el rendimiento general de la página web.

.contenedor-optimizado {
    width: 100%;
    height: 500px;
    background-image: url('optimized-pattern.png');
    background-repeat: repeat;
    background-size: 100px 100px; /* Ajuste del tamaño de la imagen para un patrón suave */
}

Esta configuración asegura que la imagen de fondo se repite en ambas direcciones, creando un patrón uniforme y estilizado.

La propiedad background-position

La propiedad background-position en CSS establece la posición inicial de una imagen de fondo dentro de un contenedor. Esta propiedad es crucial para controlar la ubicación exacta de una imagen de fondo, especialmente en diseños que requieren precisión estética. Puedes especificar la posición usando palabras clave, valores numéricos, o unidades de medida como píxeles (px), porcentajes (%), entre otros.

Sintaxis básica

.elemento {
    background-position: <valor>;
}

Valores posibles

Palabras clave

  • left top: Posiciona la imagen en la esquina superior izquierda.
  • left center: Posiciona la imagen en el centro vertical del lado izquierdo.
  • left bottom: Posiciona la imagen en la esquina inferior izquierda.
  • right top: Posiciona la imagen en la esquina superior derecha.
  • right center: Posiciona la imagen en el centro vertical del lado derecho.
  • right bottom: Posiciona la imagen en la esquina inferior derecha.
  • center top: Posiciona la imagen en el centro horizontal en la parte superior.
  • center center: Posiciona la imagen en el centro (tanto horizontal como verticalmente).
  • center bottom: Posiciona la imagen en el centro horizontal en la parte inferior.
.elemento {
    background-image: url('imagen.jpg');
    background-position: center center; /* Centra la imagen */
}

Valores numéricos

Los valores numéricos pueden especificarse en píxeles, ems o porcentajes para un control más preciso.

  • background-position: 50% 50%;: Centra la imagen. Este es equivalente a center center.
  • background-position: 10px 20px;: Posiciona la imagen a 10 píxeles desde la izquierda y a 20 píxeles desde la parte superior.
  • background-position: 0 0;: Posiciona la imagen en la esquina superior izquierda.
.elemento {
    background-image: url('imagen.jpg');
    background-position: 25px 50px; /* 25 píxeles desde la izquierda y 50 píxeles desde la parte superior */
}

Valores mixtos

  • Es posible combinar porcentajes y píxeles según las necesidades del diseño.
.elemento {
    background-image: url('imagen.jpg');
    background-position: 50% 100px; /* 50% desde la izquierda y 100 píxeles desde la parte superior */
}

Shorthand en combinación con otras propiedades

La propiedad background permite abreviar múltiples propiedades de fondo en una sola declaración, incluyendo background-position.

.elemento {
    background: url('imagen.jpg') no-repeat center/cover;
}

Consideraciones avanzadas

Múltiples imágenes de fondo

Para múltiples imágenes, se pueden especificar varias posiciones de fondo separadas por comas.

.elemento {
    background-image: url('imagen1.jpg'), url('imagen2.png');
    background-position: left top, right bottom; /* Posiciona las imágenes en las esquinas opuestas */
}

Usando calc()

CSS calc() puede utilizarse para cálculos más complejos.

.elemento {
    background-image: url('imagen.jpg');
    background-position: calc(100% - 20px) calc(100% - 10px);
}

Compatibilidad y soporte

La propiedad background-position es compatible con todos los navegadores modernos y ha sido parte de la especificación CSS2. No debería haber problemas de compatibilidad en la mayoría de proyectos web actuales.

Ejemplo avanzado

.contenedor {
    width: 200px;
    height: 200px;
    background-image: url('imagen.jpg');
    background-position: top right;
    background-repeat: no-repeat;
    border: 1px solid #000;
}

En este ejemplo, la imagen de fondo se posiciona en la esquina superior derecha, no se repite, y el contenedor tiene un borde para resaltar su área.

Aprovechar la versatilidad y precisión de background-position puede elevar significativamente la calidad visual de los elementos de fondo en una página web, logrando efectos y posicionamientos específicos que mejoran la experiencia del usuario y la estética general del diseño.

La propiedad background-size

La propiedad background-size en CSS permite definir las dimensiones que tendrá la imagen de fondo de un elemento. Es especialmente útil para adaptar imágenes de fondo a distintos tamaños de contenedores, mejorar la experiencia visual y garantizar la responsividad del diseño.

Sintaxis básica

.elemento {
    background-size: <valor>;
}

Valores posibles

  • auto: Este es el valor por defecto. Mantiene el tamaño original de la imagen.
  • <ancho> <alto>: Especifica el ancho y el alto de la imagen. Puede utilizar unidades como píxeles (px), ems (em) o porcentajes (%).
  • cover: Escala la imagen para cubrir todo el contenedor, manteniendo la relación de aspecto. La imagen puede recortarse para ajustarse al contenedor.
  • contain: Escala la imagen para asegurarse de que toda ella sea visible dentro del contenedor, manteniendo la relación de aspecto. La imagen no se recortará, pero pueden aparecer áreas vacías en el contenedor.

Ejemplos de uso

Tamaño automático (valor por defecto)

.elemento {
    background-image: url('imagen.jpg');
    background-size: auto;
}

Tamaño específico en píxeles

.elemento {
    background-image: url('imagen.jpg');
    background-size: 100px 50px;
}

Tamaño específico en porcentajes

.elemento {
    background-image: url('imagen.jpg');
    background-size: 50% 50%;
}

Escalar para cubrir el contenedor

.elemento {
    background-image: url('imagen.jpg');
    background-size: cover;
}

Escalar para contener la imagen sin recorte

.elemento {
    background-image: url('imagen.jpg');
    background-size: contain;
}

Uso avanzado de background-size

Multitudes de imágenes de fondo

Para elementos con múltiples imágenes de fondo, se pueden especificar diferentes valores de tamaño para cada imagen, separados por comas.

.elemento {
    background-image: url('imagen1.jpg'), url('imagen2.png');
    background-size: 100px 100px, contain;
}

Uso de unidades relativas

Adicionalmente a los píxeles y los porcentajes, podemos utilizar unidades relativas como em o vh y vw.

.elemento {
    background-image: url('imagen.jpg');
    background-size: 10em 5em;
}

Compatibilidad y soporte

La propiedad background-size es ampliamente soportada en todos los navegadores modernos, incluidos Google Chrome, Mozilla Firefox, Safari, Microsoft Edge y Opera. Fue introducida en CSS3 y se puede utilizar con confianza en la mayoría de los proyectos web actuales.

Ejemplo avanzado integrando background-size

.contenedor {
    width: 300px;
    height: 300px;
    background-image: url('imagen.jpg');
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    border: 1px solid #000;
}

En este ejemplo, la imagen de fondo se escala para cubrir todo el contenedor (cover), se centra (background-position: center), no se repite (no-repeat), y el contenedor tiene un borde para resaltar su área.

La propiedad background-size es esencial para crear diseños responsivos y visualmente atractivos al asegurar que las imágenes de fondo se dimensionen correctamente en diferentes dispositivos y tamaños de pantalla, mejorando significativamente la estética y funcionalidad del diseño web.

La propiedad background-attachment

La propiedad background-attachment en CSS define cómo se comporta una imagen de fondo con respecto al desplazamiento de la página (scrolling). Básicamente, controla si la imagen de fondo se desplaza con el contenido (scroll) o si permanece fija en su posición independientemente del movimiento de la página.

Sintaxis básica

.elemento {
    background-attachment: <valor>;
}

Valores posibles

  • scroll: Este es el valor por defecto. La imagen de fondo se desplaza con el contenido del elemento. Si el usuario hace scroll, la imagen de fondo se moverá junto con el contenido.
  • fixed: La imagen de fondo permanece fija en su posición relativa a la ventana del navegador. No se desplaza con el contenido del elemento.
  • local: La imagen de fondo se desplaza junto con el contenido del elemento contenedor. Similar a scroll, pero relativo al contenedor en lugar de a toda la página.
  • initial: Define el valor por defecto.
  • inherit: Hereda el valor de background-attachment de su elemento padre.

Ejemplos de uso

Desplazamiento con el contenido (valor por defecto)

.elemento-scroll {
    background-image: url('imagen.jpg');
    background-attachment: scroll;
}

Imagen fija

.elemento-fixed {
    background-image: url('imagen.jpg');
    background-attachment: fixed;
}

Desplazamiento relativo al contenedor local

.elemento-local {
    background-image: url('imagen.jpg');
    background-attachment: local;
}

Ejemplo avanzado

Uso de background-attachment combinado con otras propiedades de fondo

.contenedor-scroll {
    width: 100%;
    height: 500px;
    overflow-y: scroll;
    background-image: url('imagen.jpg');
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover;
    background-attachment: local;
}

.contenedor-fixed {
    width: 100%;
    height: 500px;
    background-image: url('imagen.jpg');
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover;
    background-attachment: fixed;
}

En este ejemplo, el contenedor .contenedor-scroll tiene un fondo que se desplaza con el contenido al hacer scroll, mientras que el contenedor .contenedor-fixed tiene un fondo fijo que no se desplaza.

Consideraciones de rendimiento

El uso de la propiedad background-attachment: fixed puede tener implicaciones en el rendimiento, especialmente en dispositivos móviles y navegadores antiguos, debido al esfuerzo adicional necesario para mantener la posición fija del fondo durante el desplazamiento.

Compatibilidad del navegador

La propiedad background-attachment es compatible con todos los navegadores modernos, incluyendo Chrome, Firefox, Safari, Edge y Opera. Sin embargo, ten en cuenta que algunos navegadores móviles pueden no manejar fixed de manera eficiente debido a las limitaciones de rendimiento.

Caso de uso práctico

Fondo fijo para un título hero

.hero {
    height: 100vh;
    background-image: url('hero-background.jpg');
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover;
    background-attachment: fixed;
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
    text-shadow: 0 1px 3px rgba(0, 0, 0, 0.5);
}

En este ejemplo, el fondo de la sección .hero permanece fijo mientras se desplaza el resto del contenido de la página, creando un efecto visual atractivo.

La propiedad background-attachment es fundamental para controlar la experiencia de usuario al manejar fondos en diseños web, y su uso adecuado puede mejorar significativamente la estética visual del diseño, así como proporcionar efectos de interacción más sofisticados.

La propiedad background-clip y background-origin

Las propiedades background-clip y background-origin en CSS afectan el comportamiento y visualización del área de pintura y del origen de las imágenes de fondo en un elemento. Estas propiedades son útiles para situaciones específicas de diseño en los que se necesita un control más detallado sobre la apariencia de los fondos.

background-clip

La propiedad background-clip establece los límites dentro de los cuales se dibuja el fondo del elemento. Esta propiedad puede ser particularmente útil para tener un mayor control sobre las partes del elemento que se ven afectadas por las imágenes o colores de fondo.

Sintaxis

.elemento {
    background-clip: <valor>;
}

Valores posibles

  • border-box: El fondo se extiende hasta el borde exterior del elemento (incluye el borde). Este es el valor predeterminado.
  • padding-box: El fondo se detiene en el borde interior del padding. El borde del elemento no es cubierto por el fondo.
  • content-box: El fondo se aplica únicamente dentro del área de contenido. No cubre el padding ni el borde.
  • text: Aplica el fondo solamente al texto del elemento. Está disponible desde CSS3 y soportado en la mayoría de navegadores modernos.

Ejemplos de uso

Uso del valor border-box (valor por defecto)

.elemento-border-box {
    border: 5px solid black;
    background-image: url('imagen.jpg');
    background-clip: border-box;
}

Uso del valor padding-box

.elemento-padding-box {
    border: 5px solid black;
    padding: 20px;
    background-image: url('imagen.jpg');
    background-clip: padding-box;
}

Uso del valor content-box

.elemento-content-box {
    border: 5px solid black;
    padding: 20px;
    background-image: url('imagen.jpg');
    background-clip: content-box;
}

Uso del valor text

.elemento-text {
    font-size: 5rem;
    background-image: url('imagen.jpg');
    background-clip: text;
    color: transparent;
}

background-origin

La propiedad background-origin define el punto desde el cual se mide la posición del fondo de un elemento. Esto es útil para ajustar cómo se posicionan las imágenes de fondo en relación con los diferentes componentes de un cuadro de contenedor.

Sintaxis

.elemento {
    background-origin: <valor>;
}

Valores posibles

  • border-box: La posición del fondo se mide desde el borde exterior del elemento.
  • padding-box: La posición del fondo se mide desde el borde interior del padding. Este es el valor predeterminado.
  • content-box: La posición del fondo se mide desde el borde del área de contenido, excluyendo el padding y el borde.

Ejemplos de uso

Uso del valor border-box

.elemento-border-box {
    border: 5px solid red;
    padding: 20px;
    background-image: url('pattern.png');
    background-origin: border-box;
    background-position: top left;
}

Uso del valor padding-box (valor por defecto)

.elemento-padding-box {
    border: 5px solid red;
    padding: 20px;
    background-image: url('pattern.png');
    background-origin: padding-box;
    background-position: top left;
}

Uso del valor content-box

.elemento-content-box {
    border: 5px solid red;
    padding: 20px;
    background-image: url('pattern.png');
    background-origin: content-box;
    background-position: top left;
}

Ejemplo combinado de background-clip y background-origin

.elemento-combinado {
    width: 300px;
    height: 300px;
    border: 10px solid blue;
    padding: 20px;
    background-image: url('imagen.jpg');
    background-clip: padding-box;
    background-origin: border-box;
    background-position: center;
    background-repeat: no-repeat;
}

En este ejemplo, el fondo se origina en el límite exterior del borde (border-box) y se pinta dentro del área de padding (padding-box).

Compatibilidad y rendimiento

Ambas propiedades, background-clip y background-origin, son ampliamente compatibles con los navegadores modernos, incluidos Chrome, Firefox, Safari, Edge y Opera. Sin embargo, al trabajar con propiedades avanzadas de fondo, especialmente cuando se usan animaciones o imágenes de alta resolución, es importante considerar el impacto en el rendimiento y probar en dispositivos y navegadores específicos para garantizar una experiencia de usuario fluida.

El uso adecuado de background-clip y background-origin proporciona un control detallado y preciso sobre cómo y dónde se muestra el fondo en elementos HTML, permitiendo un diseño sofisticado y específico según las necesidades del proyecto.

Gradientes de fondo

Los gradientes de fondo en CSS permiten crear transiciones suaves entre dos o más colores, proporcionando flexibilidad y dinamismo en el diseño de una página web. A diferencia de las imágenes, los gradientes son generados por el navegador y pueden ser completamente adaptativos a cualquier tamaño de contenedor. CSS admite principalmente dos tipos de gradientes: lineales (linear-gradient) y radiales (radial-gradient).

Gradientes lineales

Los gradientes lineales se crean cambiando el color a lo largo de una línea recta. La dirección, las combinaciones de colores y las posiciones pueden ser definidas para ajustar el diseño.

.elemento-linear {
    background: linear-gradient(to right, #ff7e5f, #feb47b);
}

En este ejemplo, el gradiente lineal se extiende de izquierda a derecha, comenzando con el color #ff7e5f y terminando en #feb47b.

Dirección del gradiente

La dirección de un gradiente lineal puede especificarse usando palabras clave como to bottom, to right, etc., o ángulos en grados.

.elemento-direction {
    background: linear-gradient(45deg, #ff7e5f, #feb47b);
}

Aquí, el gradiente se aplica en un ángulo de 45 grados.

Puntos de color

Se pueden definir varios colores en un gradiente y establecer su posición exacta en porcentajes o unidades absolutas.

.elemento-multiple {
    background: linear-gradient(to right, #ff7e5f 0%, #feb47b 50%, #86a8e7 100%);
}

En este caso, el color comienza en #ff7e5f en el 0%, cambia a #feb47b en el 50%, y finaliza en #86a8e7 al 100%.

Gradientes radiales

Los gradientes radiales se originan en un punto central y se extienden hacia afuera en forma de un círculo o elipse.

.elemento-radial {
    background: radial-gradient(circle, #ff7e5f, #feb47b);
}

En este ejemplo, el gradiente radial comienza en el centro del contenedor y se expande con #ff7e5f y termina en #feb47b.

Forma y tamaño del gradiente

Puedes definir la forma (circle o ellipse) y el tamaño (closest-side, farthest-corner, etc.).

.elemento-shape-size {
    background: radial-gradient(closest-side at 50% 50%, #ff7e5f, #feb47b);
}

Aquí, el gradiente radial tiene su forma más cercana a los lados (closest-side) y comienza en el punto medio del contenedor (50% 50%).

Gradientes cónicos

CSS también admite gradientes cónicos, útiles para efectos circulares.

.elemento-conic {
    background: conic-gradient(from 0deg at 50% 50%, #ff7e5f, #feb47b, #86a8e7);
}

Este ejemplo muestra un gradiente cónico que comienza desde los 0 grados en el centro del contenedor.

Utilización avanzada

Gradientes con transparencia

Puedes usar valores RGBA para permitir transiciones con transparencia.

.elemento-transparente {
    background: linear-gradient(to right, rgba(255, 126, 95, 0.8), rgba(134, 168, 231, 0.8));
}

En este caso, ambos colores del gradiente tienen una transparencia del 80%.

Superposición de gradientes

Se pueden superponer varios gradientes para crear efectos complejos.

.elemento-superposicion {
    background: linear-gradient(rgba(0,0,0,0.5), rgba(0,0,0,0.5)), url('imagen.jpg');
    background-blend-mode: overlay;
}

Aquí, un gradiente oscuro se superpone sobre una imagen de fondo, mezclándose mediante la propiedad background-blend-mode.

Ejemplo completo

.contenedor-gradiente {
    width: 300px;
    height: 300px;
    background: linear-gradient(135deg, #ff7e5f, #feb47b);
    border: 2px solid #000;
}

Este ejemplo aplica un gradiente lineal a un contenedor de 300px por 300px con un borde; el gradiente se extiende en un ángulo de 135 grados.

Los gradientes de fondo son fundamentales en CSS para proporcionar una estética moderna y dinámica. Aprovechando sus diversas configuraciones, puedes crear efectos visuales únicos, mejorando significativamente la experiencia del usuario.

Certifícate en CSS con CertiDevs PLUS

Ejercicios de esta lección Propiedades de fondo

Evalúa tus conocimientos de esta lección Propiedades de fondo con nuestros retos de programación de tipo Test, Puzzle, Código y Proyecto con VSCode, guiados por IA.

Todas las lecciones de CSS

Accede a todas las lecciones de CSS y aprende con ejemplos prácticos de código y ejercicios de programación con IDE web sin instalar nada.

Introducción A Css

CSS3

Introducción Y Entorno

Sintaxis

CSS3

Sintaxis De Selectores Y Propiedades

Selectores Básicos

CSS3

Sintaxis De Selectores Y Propiedades

Herencia Y Cascada

CSS3

Sintaxis De Selectores Y Propiedades

Pseudo-clases Y Pseudo-elementos

CSS3

Sintaxis De Selectores Y Propiedades

Estilos De Fuente

CSS3

Estilización De Texto Y Fondo

Propiedades De Texto

CSS3

Estilización De Texto Y Fondo

Sombras En Texto Y Cajas

CSS3

Estilización De Texto Y Fondo

Propiedades De Fondo

CSS3

Estilización De Texto Y Fondo

Modelo De Caja

CSS3

Modelo Caja Y Posicionamiento

Propiedades De Posicionamiento

CSS3

Modelo Caja Y Posicionamiento

Propiedad 'Display'

CSS3

Modelo Caja Y Posicionamiento

Elementos 'Float' Y 'Clear'

CSS3

Modelo Caja Y Posicionamiento

Flexbox Para Crear Layouts Y Estructuras

CSS3

Flexbox Y Grid

Css Grid Para Crear Layouts Y Estructuras

CSS3

Flexbox Y Grid

Animaciones Y Transiciones

CSS3

Técnicas Modernas Y Metodologías

Variables En Css

CSS3

Técnicas Modernas Y Metodologías

Diseño Responsive Con Media Queries

CSS3

Técnicas Modernas Y Metodologías

Metodologías De Escritura En Css

CSS3

Técnicas Modernas Y Metodologías

Introducción A Tailwind Css

Tailwind CSS

Introducción Y Entorno

Instalación De Tailwind Css

Tailwind CSS

Introducción Y Entorno

Fundamentos Del Sistema De Utility-first En Tailwind Css

Tailwind CSS

Fundamentos

Fundamentos Del Diseño Responsive En Tailwind Css

Tailwind CSS

Fundamentos

Tipografía Y Fuentes En Tailwind Css

Tailwind CSS

Clases De Utilidad

Clases De Tamaño De Tailwind Css

Tailwind CSS

Clases De Utilidad

Utilidades De Espaciado Y Alineación De Tailwind Css

Tailwind CSS

Clases De Utilidad

Clases De Colores Y Fondo De Tailwind Css

Tailwind CSS

Clases De Utilidad

Clases De Bordes De Tailwind Css

Tailwind CSS

Clases De Utilidad

Hover, Focus Y Estado De Tailwind Css

Tailwind CSS

Clases De Utilidad

Transiciones Y Animaciones De Tailwind Css

Tailwind CSS

Clases De Utilidad

Contenedores Y Columnas En Tailwind Css

Tailwind CSS

Layout

Flexbox En Tailwind Css

Tailwind CSS

Layout

Grid En Tailwind Css

Tailwind CSS

Layout

Conocimiento General De Tailwind Css - Evaluación Multirespuesta

Tailwind CSS

Evaluación

Conocimiento General De Tailwind Css - Evaluación Código

Tailwind CSS

Evaluación

Certificados de superación de CSS

Supera todos los ejercicios de programación del curso de CSS y obtén certificados de superación para mejorar tu currículum y tu empleabilidad.

En esta lección

Objetivos de aprendizaje de esta lección

  • Comprender y aplicar la propiedad background-color.
  • Establecer imágenes de fondo usando background-image.
  • Controlar la repetición de imágenes con background-repeat.
  • Definir la posición exacta de fondos usando background-position.
  • Ajustar el tamaño de un fondo con background-size.
  • Fijar o desplazar fondos con background-attachment.
  • Limitar áreas de pintado con background-clip y background-origin.
  • Crear gradientes lineales, radiales y cónicos.
  • Mejorar la estética y funcionalidad manteniendo la accesibilidad.