CSS - Fondos

-

Propiedades de fondo

background-color

La propiedad background-color establece el color de fondo de un elemento. Puedes especificar el color usando formatos como nombres de colores, valores RGB, HEX o HSL.

Consejo: Nombre de color

background-color: red;

Esto establece el color de fondo en rojo usando un nombre de color. También puedes usar valores RGB:

Consejo: Valores RGB

background-color: rgb(255, 0, 0);

Valores HEX:

Consejo: Valores HEX

background-color: #ff0000;

o valores HSL:

Consejo: Valores HSL

background-color: hsl(0, 100%, 50%);

Puedes controlar la transparencia con valores RGBA o HSLA. Por ejemplo:

Consejo: Valores RGBA

background-color: rgba(255, 0, 0, 0.5);

background-image

La propiedad background-image establece una o más imágenes de fondo para un elemento usando la función url().

Consejo: Imagen única

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

Esto establece "imagen.jpg" como imagen de fondo. Para establecer múltiples imágenes:

Consejo: Múltiples imágenes

background-image: url('imagen1.jpg'), url('imagen2.jpg');

background-repeat

La propiedad background-repeat controla cómo se repite una imagen de fondo dentro de un elemento.

  • repeat: Repite tanto horizontal como verticalmente (predeterminado).
  • repeat-x: Repite solo horizontalmente.
  • repeat-y: Repite solo verticalmente.
  • no-repeat: Muestra una vez sin repetir.

Consejo: Sin repetición

background-repeat: no-repeat;

background-attachment

La propiedad background-attachment especifica si una imagen de fondo debe desplazarse con la página o permanecer fija.

  • scroll: El valor predeterminado; hace que se desplace con el contenido.
  • fixed: La mantiene fija en su posición.

Consejo: Adjunto fijo

background-attachment: fixed;

background-position

La propiedad background-position te permite controlar dónde se coloca una imagen de fondo dentro de un elemento. Puedes especificar la posición usando palabras clave, porcentajes o valores de longitud. Los valores de palabras clave comunes son top, bottom, left, right y center.

Consejo: Arriba a la derecha

background-position: top right;

También puedes usar porcentajes o valores de longitud para posicionar la imagen con precisión, como:

Consejo: Porcentajes

background-position: 50% 50%;

Consejo: Valores de longitud

background-position: 100px 200px;

background-size

La propiedad background-size se usa para redimensionar imágenes de fondo. Puedes especificar el tamaño usando palabras clave o dimensiones específicas. Los valores de palabras clave comunes son auto, cover y contain.

  • Auto muestra la imagen en su tamaño original.
  • Cover escala la imagen para cubrir todo el elemento, recortando si es necesario para mantener la relación de aspecto.
  • Contain escala la imagen para que quepa dentro del elemento, preservando su relación de aspecto.

También puedes especificar dimensiones exactas usando valores de longitud o porcentajes, como:

Consejo: Dimensiones específicas

background-size: 200px 300px;

Consejo: Dimensiones en porcentaje

background-size: 50% 50%;

background-origin

La propiedad background-origin especifica dónde se posiciona una imagen de fondo en relación con el modelo de caja del elemento. Los valores posibles son padding-box, border-box y content-box.

  • Padding-box la posiciona en relación con el relleno del elemento.
  • Border-box la posiciona en relación con el borde del elemento.
  • Content-box la posiciona en relación con el contenido del elemento.

Consejo: Caja del borde

background-origin: border-box;

background-clip

La propiedad background-clip define hasta dónde se extiende un fondo dentro del modelo de caja de un elemento. Los valores posibles son border-box, padding-box y content-box.

  • Border-box lo extiende hasta el borde exterior del borde del elemento.
  • Padding-box lo recorta hasta el borde exterior del relleno del elemento.
  • Content-box lo recorta hasta el borde exterior del contenido del elemento.

Consejo: Caja de relleno

background-clip: padding-box;

Estas propiedades te dan muchas opciones para controlar los fondos en CSS. Úsalas solas o en conjunto para crear fondos atractivos y responsivos para tus páginas web.

Propiedad Abreviada de Fondo

La propiedad abreviada background te permite establecer múltiples propiedades de fondo en una sola declaración. Esto puede hacer que tu código CSS sea más corto y fácil de leer.

El orden de los valores en la propiedad abreviada es:

Consejo: Orden de los valores de la propiedad abreviada de fondo

background: <background-color> <background-image> <background-repeat> <background-attachment> <background-position> / <background-size>;

Puedes combinar estas propiedades de fondo:

Consejo: Combinación de propiedades individuales de fondo

background-color: #ff0000;
background-image: url('image.jpg');
background-repeat: no-repeat;
background-attachment: fixed;
background-position: center;
background-size: cover;

En una sola declaración abreviada:

Consejo: Declaración abreviada para propiedades de fondo

background: #ff0000 url('image.jpg') no-repeat fixed center / cover;

Ten en cuenta que el valor de background-size está separado del valor de background-position por una barra diagonal (/).

Al usar la propiedad abreviada, cualquier valor omitido se establecerá en su valor predeterminado. Si deseas que todas las propiedades de fondo se establezcan explícitamente, incluye todos los valores necesarios en la declaración abreviada.

El uso de la propiedad abreviada background puede ayudar a simplificar tu código CSS y hacerlo más fácil de mantener. Sin embargo, si solo necesitas establecer una o dos propiedades de fondo, puede ser más legible usar propiedades individuales en lugar de la abreviada.

Múltiples Fondos

CSS permite superponer varias imágenes de fondo en un solo elemento. Esta técnica puede crear efectos visuales interesantes y añadir profundidad a tus diseños.

Para especificar múltiples imágenes de fondo, puedes usar una lista de valores de imágenes de fondo separados por comas en la propiedad background-image o en la propiedad abreviada background.

Consejo: Superponiendo Dos Imágenes de Fondo

.element {
  background-image: url('image1.jpg'), url('image2.jpg');
}

También puedes combinar múltiples imágenes de fondo con otras propiedades. Al usar la propiedad abreviada background, los valores para cada capa se separan por comas.

Consejo: Combinando Múltiples Imágenes de Fondo con Propiedades

.element {
  background: url('image1.jpg') no-repeat center, 
              url('image2.jpg') repeat-x top;
}

Además, puedes especificar diferentes tamaños, posiciones y otras propiedades para cada capa.

Consejo: Especificando Diferentes Tamaños y Posiciones

.element {
  background: url('image1.jpg') no-repeat center/cover,
              url('image2.jpg') repeat-x top/50% auto;
}

Al usar múltiples fondos, la primera imagen especificada estará en la parte superior. Las imágenes siguientes se colocarán debajo en el orden en que se declaran.

Los múltiples fondos te dan opciones para crear diseños visualmente ricos usando CSS. Experimenta con diferentes combinaciones de imágenes, posiciones, tamaños y otras propiedades para lograr los efectos deseados.

Degradados de fondo

CSS permite crear transiciones de color conocidas como degradados para fondos. Puedes crear degradados lineales o radiales sin usar archivos de imagen, lo que resulta en tiempos de carga más rápidos.

Para crear un degradado lineal, usa la función linear-gradient() como valor para la propiedad background o background-image. Especifica la dirección del degradado y los colores entre los que quieres hacer la transición.

Consejo: Degradado lineal

.element {
  background: linear-gradient(to right, red, blue);
}

Esto crea un degradado que transiciona de rojo en la izquierda a azul en la derecha. Puedes especificar la dirección usando palabras clave como to top, to bottom, to left, to right, o un ángulo en grados.

Los puntos de color controlan dónde ocurre cada transición de color. Por defecto, las transiciones están espaciadas uniformemente, pero puedes especificar porcentajes o longitudes para controlar sus posiciones.

Consejo: Degradado lineal con puntos de color

.element {
  background: linear-gradient(to right, red 0%, blue 50%, green 100%);
}

Para crear un degradado radial, usa la función radial-gradient(). Especifica la posición central, la forma (círculo o elipse), y los puntos de color.

Consejo: Degradado radial

.element {
  background: radial-gradient(circle at center, red, blue);
}

Esto crea un degradado circular centrado dentro del elemento que transiciona de rojo en el centro a azul en los bordes.

Puedes crear degradados más complejos especificando múltiples puntos de color y usando transparencia.

Consejo: Degradado complejo

.element {
  background: linear-gradient(45deg, rgba(255, 0, 0, 0.5), rgba(0, 0, 255, 0.5));
}

Los degradados se pueden combinar con otras propiedades de fondo como background-size y background-repeat para crear varios efectos.

Consejo: Degradado repetitivo

.element { 
  background: repeating-linear-gradient(45deg, red, blue 10%);
} 

Los degradados CSS proporcionan una forma de crear fondos visualmente atractivos sin depender de archivos de imagen. Experimenta con diferentes colores, direcciones y puntos de color para lograr los efectos deseados.

Mezcla de Fondos

La propiedad background-blend-mode en CSS te permite mezclar imágenes de fondo y colores dentro de un elemento. Esto crea efectos visuales combinando múltiples fondos usando diferentes modos de mezcla.

Los modos de mezcla disponibles son:

  • normal: El modo predeterminado; no se aplica ninguna mezcla.
  • multiply: Multiplica el color de fondo con la imagen, resultando en un efecto más oscuro.
  • screen: Multiplica el inverso del color de fondo con la imagen, resultando en un efecto más claro.
  • overlay: Aplica una combinación de multiply y screen basado en el color de fondo.
  • darken: Selecciona los valores de color más oscuros de la imagen y el color de fondo.
  • lighten: Selecciona los valores de color más claros de la imagen y el color de fondo.

Otros modos de mezcla incluyen: color-dodge, color-burn, hard-light, soft-light, difference, exclusion, hue, saturation, color, y luminosity.

Para usar la mezcla de fondos, aplica múltiples fondos a un elemento y luego especifica el modo de mezcla deseado con la propiedad.

Consejo: Mezcla de Fondos con Múltiples Imágenes

.element {
  background-image: url('image1.jpg'), url('image2.jpg');
  background-blend-mode: multiply;
}

En este ejemplo, image1.jpg e image2.jpg se mezclan usando el modo, creando un efecto de superposición más oscuro.

También puedes mezclar imágenes con colores.

Consejo: Mezcla de Fondo con Imagen y Color

.element {
  background: url('image.jpg'), #ff0000;
  background-blend-mode: screen;
}

Aquí, el modo se usa para mezclar la imagen con un color rojo, resultando en un efecto más claro.

Si tienes múltiples fondos, puedes especificar múltiples modos para cada capa.

Consejo: Múltiples Modos de Mezcla de Fondo

.element {
  background: url('image1.jpg'), url('image2.jpg'), #ff0000;
  background-blend-mode: multiply, overlay;
}

En este caso, usas un modo para mezclar dos imágenes, luego otro modo para combinarlas nuevamente, pero ahora incluyendo también el rojo.

La mezcla de fondos abre muchas posibilidades creativas para combinar imágenes y colores. Experimentar te ayudará a lograr los efectos deseados.

Opacidad del fondo

La opacidad de los colores y las imágenes de fondo en CSS se puede controlar usando la propiedad opacity o utilizando valores de color RGBA o HSLA.

La propiedad opacity establece la opacidad general de un elemento, incluyendo su contenido y fondo. Toma un valor entre 0 (completamente transparente) y 1 (completamente opaco).

Consejo: Ejemplo: Propiedad Opacity

.element {
  background-color: #ff0000;
  opacity: 0.5;
}

En este ejemplo, el color de fondo del elemento se establece en rojo, y la opacidad se fija en 0.5, haciéndolo 50% transparente.

Sin embargo, usar la propiedad opacity afecta a todo el elemento, incluyendo su contenido. Si solo quieres controlar la opacidad del color o imagen de fondo sin afectar al contenido, puedes usar valores de color RGBA o HSLA.

RGBA significa Rojo, Verde, Azul, Alfa; donde alfa representa la opacidad. HSLA significa Tono, Saturación, Luminosidad, Alfa; donde alfa cumple la misma función.

Consejo: Ejemplo: Valor de Color RGBA

.element {
  background-color: rgba(255, 0, 0, 0.5);
}

En este ejemplo, el color de fondo se establece en rojo con una opacidad de 0.5 usando el valor de color RGBA. El contenido permanece completamente opaco.

También puedes usar valores de color RGBA o HSLA con imágenes de fondo.

Consejo: Ejemplo: RGBA con Imagen de Fondo

.element {
  background-image: linear-gradient(rgba(255, 0, 0, 0.5), rgba(0, 0, 255, 0.5)), 
                    url('image.jpg');
}

Aquí se superpone un degradado lineal con colores rojo y azul transparentes sobre una imagen de fondo. La imagen en sí permanece completamente opaca mientras que los colores del degradado son semitransparentes.

Usar RGBA o HSLA te permite controlar la transparencia independientemente del contenido, proporcionando flexibilidad para crear diseños visualmente interesantes.

Patrones de fondo

Los patrones de fondo añaden textura e interés visual a tus páginas web. Puedes crear patrones de fondo repetitivos usando imágenes pequeñas y técnicas de CSS para una repetición sin costuras.

Para crear un patrón de fondo repetitivo, comienza seleccionando o creando una imagen pequeña que pueda ser dispuesta en mosaico sin problemas. La imagen debe tener bordes que coincidan cuando se repita horizontal y verticalmente.

Patrón simple

Consejo: Patrón simple

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

Este código establece la imagen de fondo como "pattern.png" y la repite tanto horizontal como verticalmente para crear un patrón continuo.

Puedes usar la propiedad background-repeat con el valor repeat. Esto dispondrá la imagen en mosaico en ambas direcciones para llenar el fondo del elemento.

Si solo quieres que el patrón se repita en una dirección, puedes usar repeat-x para repetición horizontal o repeat-y para repetición vertical.

Repetición de patrón horizontal

Consejo: Repetición de patrón horizontal

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

Otra técnica para crear patrones continuos es usar gradientes CSS con imágenes de fondo. Al superponer un gradiente semitransparente sobre la imagen del patrón, puedes crear un efecto más sutil.

Patrón con superposición de gradiente

Consejo: Patrón con superposición de gradiente

.element {
  background-image: linear-gradient(rgba(255, 255, 255, 0.5), rgba(255, 255, 255, 0.5)), 
                    url('pattern.png');
  background-repeat: repeat;
}

Este código aplica un gradiente blanco semitransparente sobre la imagen de patrón repetitiva, creando un efecto más suave.

Al crear patrones de fondo, considera el tamaño del archivo de imagen. Usar imágenes más grandes puede afectar los tiempos de carga de la página; es mejor usar imágenes pequeñas optimizadas para patrones. También puedes usar sprites CSS para combinar varias imágenes de patrones en un solo archivo, reduciendo las solicitudes HTTP.

Los patrones de fondo añaden profundidad e interés visual a tus diseños web. Al usar imágenes pequeñas continuas y técnicas CSS como background-repeat y gradientes, puedes crear fondos atractivos para tus páginas web.

Imágenes de fondo adaptables

El diseño web adaptable ofrece experiencias óptimas para los usuarios en diferentes dispositivos. Usar imágenes de fondo adaptables implica proporcionar tamaños y resoluciones de imagen apropiados según el tamaño de pantalla del espectador.

Una técnica es servir diferentes archivos de imagen según el tamaño de pantalla del dispositivo. Puedes definir múltiples propiedades background-image usando media queries.

Imágenes de fondo adaptables con Media Queries

Consejo: Imágenes de fondo adaptables con Media Queries

.element {
  background-image: url('small-image.jpg');
}

@media (min-width: 768px) {
  .element {
    background-image: url('medium-image.jpg');
  }
}

@media (min-width: 1200px) {
  .element {
  background-image: url('large-image.jpg');
  }
}

Este código establece una imagen de fondo pequeña por defecto. A medida que los tamaños de pantalla aumentan a 768px y 1200px de ancho, se utilizan las imágenes de tamaño medio y grande en su lugar.

También puedes usar la función image-set() para especificar múltiples archivos de imagen con diferentes resoluciones. El navegador elige la imagen más apropiada según la densidad de píxeles del dispositivo.

Imágenes de fondo adaptables con image-set()

Consejo: Imágenes de fondo adaptables con image-set()

.element {
  background-image: image-set(
    url('image-1x.jpg') 1x,
    url('image-2x.jpg') 2x
  );
}

"image-1x.jpg" se usa en pantallas estándar mientras que "image-2x.jpg" (resolución doble) se usa en pantallas de alta densidad de píxeles como las pantallas Retina.

Otro enfoque es usar gradientes CSS en lugar de archivos de imagen. Los gradientes son independientes de la resolución y se escalan bien en diferentes tamaños de pantalla.

Fondo adaptable con gradiente

Consejo: Fondo adaptable con gradiente

.element {
  background-image: linear-gradient(to right, #ff0000, #0000ff);
}

Considera usar patrones basados en vectores (SVGs) en lugar de imágenes rasterizadas. Los SVGs se escalan sin perder calidad, lo que los hace ideales para diseños adaptables.

Fondo adaptable con SVG

Consejo: Fondo adaptable con SVG

.element {
  background-image: url('pattern.svg');
}

Al planificar tus fondos adaptables, considera tus dispositivos objetivo, las resoluciones de pantalla y el impacto visual que quieres lograr. Combina técnicas como media queries, image-set(), gradientes CSS y SVGs para crear fondos atractivos que se adapten bien a diferentes pantallas.