Fondos en HTML

-

Tipos de Fondos

En el diseño web, existen varios tipos de fondos entre los que elegir. Cada tipo ofrece diferentes posibilidades visuales y puede usarse para crear diseños atractivos. Estos son los tres tipos principales de fondos: fondos de color, fondos de imagen y fondos de degradado.

Fondos de Color

Los fondos de color son el tipo más simple de fondo. Consisten en usar un color sólido como fondo de un elemento o de toda la página web. Para establecer un fondo de color usando CSS, puedes utilizar la propiedad background-color. CSS proporciona varias formas de especificar colores, incluyendo:

  • Valores hexadecimales: Los colores pueden representarse usando un valor hexadecimal de seis dígitos precedido por un símbolo de almohadilla (#). Por ejemplo, #ff0000 representa el rojo.
  • Valores RGB: Los colores pueden especificarse usando la función rgb(), que toma tres parámetros que representan los valores de rojo, verde y azul. Por ejemplo, rgb(255, 0, 0) representa el rojo.
  • Valores HSL: Los colores también pueden definirse usando la función hsl() (tono, saturación, luminosidad). Por ejemplo, hsl(0°, 100%, 50%) representa el rojo.

El uso de fondos de color es sencillo y te permite establecer un fondo consistente para tu contenido.

Fondos de Imagen

Los fondos de imagen te permiten usar una imagen como fondo de un elemento o de toda la página web. Para establecer un fondo de imagen usando CSS:

Consejo: Image background CSS

background-image: url('path/to/image.jpg');

Tienes control sobre cómo se muestra la imagen con propiedades como:

  • background-repeat: Determina si la imagen debe repetirse horizontalmente (repeat-x), verticalmente (repeat-y), o no repetirse en absoluto (no-repeat).
  • background-position: Especifica dónde en el espacio del elemento comienza su fondo (por ejemplo, arriba a la izquierda).

Los fondos de imagen añaden interés visual y profundidad a tus diseños.

Propiedades de fondo

CSS ofrece propiedades para controlar la apariencia y el comportamiento de los fondos. Estas propiedades te permiten establecer el color de fondo, la imagen, la repetición, la posición, el anclaje y el tamaño. Veamos más de cerca cada una de estas propiedades de fondo.

background-color

La propiedad background-color establece el color de fondo de un elemento. Puedes especificar un color sólido usando valores hexadecimales, valores RGB o nombres de colores.

Consejo: ejemplo de background-color

.element {
  background-color: #ff0000; /* Rojo */
}

También puedes usar la palabra clave transparent para crear un fondo transparente.

background-image

La propiedad background-image te permite especificar una imagen como fondo de un elemento. Necesitas proporcionar la URL de la imagen.

Consejo: ejemplo de background-image

.element {
  background-image: url('ruta/a/imagen.jpg');
}

Puedes controlar su repetición y posicionamiento usando otras propiedades.

background-repeat

La propiedad background-repeat controla cuántas veces se repite la imagen. Acepta estos valores:

  • repeat: La imagen se repite tanto horizontal como verticalmente (predeterminado).
  • repeat-x: La imagen se repite solo horizontalmente.
  • repeat-y: La imagen se repite solo verticalmente.
  • no-repeat: La imagen no se repite y aparece solo una vez.

Consejo: ejemplo de background-repeat

.element {
  background-image: url('ruta/a/imagen.jpg');
  background-repeat: no-repeat;
}

background-position

La propiedad background-position especifica dónde se coloca la imagen dentro del elemento. Puedes usar palabras clave como top, bottom, left, right y center, o valores exactos usando longitudes o porcentajes.

Consejo: ejemplo de background-position

.element {
  background-image: url('ruta/a/imagen.jpg');
  background-position: center center;
}

Esto colocará la imagen en el centro tanto horizontal como verticalmente.

background-attachment

La propiedad background-attachment controla cómo se desplaza una imagen de fondo con el contenido de la página y acepta dos valores:

  • scroll: La imagen de fondo se desplaza con el contenido de la página (predeterminado).
  • fixed: La imagen de fondo permanece estática incluso cuando otros elementos se mueven.

Consejo: ejemplo de background-attachment

.element { 
  background-image: url('ruta/a/imagen.jpg'); 
  background-attachment: fixed; 
}

Al usar estas herramientas disponibles a través de CSS, los desarrolladores pueden crear sitios web visualmente atractivos sin sacrificar el rendimiento o la usabilidad en diferentes dispositivos y navegadores.

Propiedad Abreviada de Fondo

CSS ofrece una forma de establecer múltiples propiedades de fondo en una sola declaración utilizando la propiedad abreviada background. Esta propiedad permite combinar varias propiedades relacionadas con el fondo en una sola declaración, haciendo que tu código sea más legible.

Para usar la propiedad abreviada background, se especifican los valores de las propiedades individuales de fondo en un orden específico. La sintaxis para la propiedad abreviada background es la siguiente:

Consejo: Propiedad Abreviada de Fondo en CSS

background: [background-color] [background-image] [background-position] [background-repeat] [background-attachment] [background-size];

Algún texto

body { 
    ...
}

Algo más de texto

Esto es lo que representa cada valor:

  • background-color: El color del fondo del elemento.
  • background-image: La URL de la imagen.
  • background-position: La posición de la imagen.
  • background-repeat: Cómo se repite la imagen.
  • background-attachment: Cómo se desplaza la imagen con el contenido.
  • background-size: El tamaño de la imagen.

Al usar esta propiedad abreviada, puedes omitir cualquier valor si no deseas establecerlo. Sin embargo, mantén su orden consistente.

Consejo: Ejemplo de CSS de la Propiedad Abreviada de Fondo

.element {
  background: #f2f2f2 url('path/to/image.jpg') center no-repeat fixed;
}

Algún texto

body { 
    ...
}

Algo más de texto

En este ejemplo:

  • #f2f2f2 establece un color gris claro para el fondo.
  • 'path/to/image.jpg' establece una URL de imagen para el fondo.
  • center la posiciona en el centro de su elemento.
  • no-repeat significa que no se repite.
  • fixed significa que permanece fija mientras el contenido se desplaza.

Usar esta abreviatura puede ayudarte a escribir código CSS más conciso. Es útil cuando se establecen múltiples fondos para un elemento en una sola línea.

Si más tarde quieres cambiar solo una propiedad individual después de usar esta abreviatura, necesitarás volver a especificar todos los demás valores también. Alternativamente, usa propiedades individuales para apuntar a aspectos específicos sin afectar a otros.

Múltiples Fondos

CSS permite superponer varios fondos en un solo elemento. Al especificar múltiples imágenes y colores de fondo, puedes lograr efectos visuales sin necesidad de elementos HTML adicionales.

Para aplicar múltiples fondos a un elemento, usa la propiedad background o las propiedades individuales de fondo, separando cada fondo con una coma.

Consejo: Múltiples Fondos con Imágenes y Degradado

.element {
  background: url('image1.jpg') center no-repeat,
              url('image2.jpg') top left repeat,
              linear-gradient(to bottom, #fff, #000);
}
  1. image1.jpg se posiciona en el centro y no se repite.
  2. image2.jpg se posiciona en la esquina superior izquierda y se repite.
  3. Se aplica un degradado lineal de blanco a negro como tercer fondo.

Los fondos se superponen uno encima del otro, siendo el primer fondo especificado la capa superior y el último fondo especificado la capa inferior.

También puedes combinar colores de fondo con imágenes:

Consejo: Combinación de Color de Fondo e Imagen

.element {
  background: url('image.jpg') center no-repeat,
              #ff0000;
}

En este caso, el color rojo (#ff0000) será visible en las áreas donde la imagen sea transparente o no cubra todo el elemento.

Al usar múltiples fondos, puedes controlar la posición, repetición y tamaño de cada uno por separado:

Consejo: Control de Propiedades de Fondo por Separado

.element {
  background-image: url('image1.jpg'), url('image2.jpg');
  background-position: center, top right;
  background-repeat: no-repeat, repeat-x;
  background-size: cover, contain;
}
  • image1.jpg está centrada, no se repite y cubre todo el elemento.
  • image2.jpg está posicionada en la esquina superior derecha; se repite horizontalmente; se ajusta dentro del elemento manteniendo su proporción.

Al superponer múltiples fondos como muestran estos ejemplos, puedes crear diseños atractivos que combinan imágenes, colores y degradados. Experimenta con diferentes combinaciones y propiedades para lograr el efecto deseado en tu página web.

Transparencia de fondo

CSS ofrece formas de crear fondos transparentes usando valores de color RGBA o HSLA. Esto permite controlar la opacidad del fondo, haciéndolo parcial o totalmente transparente.

Para crear un fondo transparente usando RGBA:

Consejo: Fondo transparente usando RGBA

.element {
  background-color: rgba(255, 0, 0, 0.5);
}
  • 255, 0, 0 representa el color rojo.
  • 0.5 es el valor alfa que controla la opacidad (0 es totalmente transparente, 1 es totalmente opaco).

El color de fondo será rojo semitransparente.

De manera similar, puedes usar HSLA para crear fondos transparentes:

Consejo: Fondo transparente usando HSLA

.element {
  background-color: hsla(0, 100%, 50%, 0.5);
}
  • 0 es el valor de tono (rojo).
  • 100% es la saturación.
  • 50% es la luminosidad.
  • 0.5 es el valor alfa para 50% de opacidad.

Esto crea un fondo rojo semitransparente usando el modelo de color HSLA.

Al ajustar el valor alfa, puedes controlar qué tan transparente será tu color de fondo. Esto ayuda cuando quieres crear superposiciones o mostrar contenido debajo de un elemento.

Consejo: Ejemplo de superposición con fondo transparente

<div class="overlay">
  <h1>Bienvenido</h1>
  <p>Este es un texto sobre un fondo transparente.</p>
</div>

<style>
.overlay {
    background-color: rgba(0, 0, 0, .7);
    color: #fff;
    padding: 20px;
}
</style>
  • El <div> tiene un fondo oscuro semitransparente usando rgba(0, 0, 0, 0.7).
  • El color del texto está configurado en blanco (#fff) para una mejor legibilidad.
  • El relleno añade espacio alrededor del contenido dentro del <div>.

El efecto transparente permite que el contenido detrás del <div> se vea mientras mantiene el texto legible.

Al usar fondos transparentes, piensa en qué tan fácil será para las personas leer tu texto. Elige buenos colores y tamaños de fuente para que haya suficiente contraste con tu fondo. Los fondos transparentes son útiles para crear diseños agradables y superposiciones mientras muestras el contenido subyacente. Al controlar la transparencia con valores RGBA o HSLA, obtienes justo la cantidad correcta de efecto transparente en tus diseños.

Ejemplos y Demostraciones

Aquí hay algunos ejemplos prácticos del uso de fondos en diseño web. Estos fragmentos de código y demostraciones en vivo muestran cómo puedes usar diferentes tipos de fondos y propiedades para crear diseños atractivos.

Fondos de Sección de Colores

Puedes usar fondos de color sólido para crear secciones distintas en una página web.

Consejo: Fondos de Sección de Colores

<section class="section-1">
  <h2>Sección 1</h2>
  <p>Esta sección tiene un fondo azul.</p>
</section>

<section class="section-2">
  <h2>Sección 2</h2>
  <p>Esta sección tiene un fondo verde.</p>
</section>

<style>
.section-1 {
  background-color: #2196F3;
  color: #fff;
  padding: 20px;
}

.section-2 {
  background-color: #4CAF50;
  color: #fff;
  padding: 20px;
}
</style>

En este ejemplo, dos elementos <section> tienen diferentes colores de fondo (#2196F3 para azul y #4CAF50 para verde) usando la propiedad background-color. El color del texto se establece en blanco (#fff) para una mejor legibilidad, y se añade padding para el espaciado.

Fondo de Imagen de Héroe

Puedes crear una sección de héroe con una imagen de fondo que cubra toda la sección.

Consejo: Fondo de Imagen de Héroe

<section class="hero">
   <h1>Bienvenido a Mi Sitio Web</h1>
   <p>Esta es una sección de héroe con una imagen de fondo.</p>
</section>

<style>
.hero {
   background-image: url('ruta/a/imagen-hero.jpg');
   background-size: cover;
   background-position: center;
   height: 400px; 
   display: flex; 
   justify-content: center; 
   align-items: center; 
   color: #fff; 
   text-align: center;
}
</style>  

En este ejemplo, el <section class="hero"> tiene una imagen de fondo aplicada usando la propiedad background-image. El background-size se establece en cover, asegurando que la imagen cubra toda la sección, y background-position se establece en center. La sección tiene una altura de 400px, y flexbox centra el contenido vertical y horizontalmente. El color del texto se establece en blanco (#fff) para una mejor visibilidad contra la imagen.

Fondo Degradado con Superposición Transparente

Puedes crear una sección con fondos degradados y superposiciones transparentes para el texto.

Consejo: Fondo Degradado con Superposición Transparente

<section class="gradient-section">
  <div class="overlay">
    <h2>Sección Degradada</h2>
    <p>Esta sección tiene fondos degradados con superposiciones transparentes.</p>
  </div>
</section>

<style>
.gradient-section {
  background-image: linear-gradient(to right, #ff7e5f, #feb47b);
  padding: 50px;
}
.overlay {
  background-color: rgba(0, 0, 0, 0.6);
  padding: 20px;
  color: #fff;
  text-align: center;
}
</style>

En este ejemplo, <section class="gradient-section"> tiene fondos degradados lineales que transicionan de #ff7e5f a #feb47b usando linear-gradient(). Dentro hay un <div class="overlay"> que usa negro transparente (rgba(0, 0, 0, 0.6)) para su background-color. Los colores del texto son blancos (#fff) para legibilidad contra la superposición oscura. El padding añade espacio alrededor de ambas secciones y superposiciones.