Te mostraré cómo poner una imagen de fondo en HTML a tu página para que se vea profesional y funcione en todos los dispositivos. Independientemente de tu nivel, desde principiante hasta avanzado, aquí encontrarás todas las herramientas y técnicas necesarias.
Para quién es este artículo:
- Desarrolladores web que buscan mejorar sus habilidades con imágenes de fondo.
- Estudiantes y principiantes en el desarrollo web que desean dominar los fundamentos de HTML y CSS.
- Profesionales interesados en optimizar el rendimiento de los sitios web mediante el uso correcto de imágenes de fondo.
Un fondo bonito puede transformar tu sitio web, ¡convirtiendo una página aburrida en una obra maestra visual! En la actualidad, saber trabajar correctamente con imágenes de fondo no es solo una habilidad, sino una verdadera ventaja competitiva para cualquier desarrollador web.
Formas sencillas de cómo poner una imagen de fondo en HTML
Existen varios métodos para agregar una imagen de fondo a tu página web. Cada uno tiene sus ventajas y se aplica según la tarea específica. Veamos, del más simple al más avanzado:
Método 1: Usar el atributo style en HTML
La forma más rápida de agregar una imagen de fondo es usar estilos integrados a través del atributo style. Es ideal para prototipos rápidos o cuando necesitas agregar un fondo solo a un elemento:
Ejemplo:

<div style="background-image: url('images/background.jpg'); height: 300px; width: 100%;"></div>HTMLMétodo 2: Usar un archivo CSS externo
Un enfoque más profesional y flexible es usar archivos CSS externos. Esto permite administrar los estilos de forma centralizada y hace que el código sea más limpio:

Aprende todos los métodos para Insertar CSS en HTML
Archivo HTML:
<div class="hero-section"></div>HTMLArchivo CSS:
.hero-section {
background-image: url('../images/hero-bg.jpg');
height: 500px;
background-repeat: no-repeat;
background-size: cover;
background-position: center;
}CSSPara facilitar la comparación de los métodos, veamos una tabla de sus ventajas y desventajas:
| Método | Ventajas | Desventajas | Cuándo usar |
|---|---|---|---|
style integrado | Se aplica rápidamente, no requiere archivos adicionales | Mezcla contenido y presentación, difícil de mantener | Para prototipos rápidos, pruebas |
| CSS externo | Separación de contenido y estilos, fácil mantenimiento | Requiere un archivo adicional | Para todos los proyectos serios |
CSS en <head> | No requiere archivos externos, pero separa contenido y estilos | Aumenta el tamaño del documento HTML | Para proyectos pequeños con CSS limitado |
Nota del Autor
Cuando empecé a enseñar a los estudiantes a trabajar con imágenes de fondo, uno de ellos tenía un problema constante: la imagen no se cargaba o se estiraba incorrectamente. Dedicamos toda una clase a la depuración hasta que descubrimos que indicaba la ruta relativa al archivo incorrectamente.
“La ruta a la imagen debe especificarse en relación con el archivo CSS, no con el documento HTML”, le expliqué. Corregimos la ruta de url('images/bg.jpg') a url('../images/bg.jpg'), ¡y mágicamente todo funcionó! Fue un momento de iluminación, y desde entonces siempre recalco la importancia de indicar correctamente las rutas a los recursos.
Sintaxis de imágenes de fondo en CSS para diferentes tareas
Una vez que domines las formas básicas de agregar fondos, profundicemos en la sintaxis de las propiedades CSS para una configuración más precisa de las imágenes de fondo.
Control del tamaño de la imagen
La propiedad background-size determina cómo se debe escalar la imagen en la página:
cover: la imagen se escala para cubrir completamente el contenedor (algunas partes pueden recortarse).contain: la imagen se escala para caber completamente dentro del contenedor (pueden aparecer áreas vacías).auto: la imagen conserva sus dimensiones originales.- Valores específicos: puedes especificar dimensiones exactas (por ejemplo,
300px 200pxo50% 100%).
Ejemplo:
.hero {
background-image: url('hero.jpg');
background-size: cover;
}CSSPosicionamiento de la imagen
Con background-position puedes especificar cómo se debe colocar la imagen en el contenedor:
- Palabras clave:
center,top,right,bottom,lefto sus combinaciones (por ejemplo,top right). - Porcentajes:
0% 0%(esquina superior izquierda),100% 100%(esquina inferior derecha). - Píxeles: coordenadas exactas (por ejemplo,
10px 20px).
Ejemplo:
.profile-card {
background-image: url('pattern.jpg');
background-position: center;
}CSSRepetición de la imagen
La propiedad background-repeat determina si la imagen se repetirá:
repeat: se repite horizontal y verticalmente (predeterminado).repeat-x: se repite solo horizontalmente.repeat-y: se repite solo verticalmente.no-repeat: la imagen no se repite.space: la imagen se repite, distribuyendo el espacio libre entre las copias.round: la imagen se repite, escalándose si es necesario para evitar recortes.
Ejemplo:
.pattern-bg {
background-image: url('subtle-pattern.png');
background-repeat: repeat-x;
}CSSSintaxis breve de background
Para ahorrar código, puedes usar la escritura abreviada de la propiedad background, que combina varias propiedades:
Ejemplo:
.section {
background: url('bg.jpg') no-repeat center/cover;
}CSSEsto es equivalente a:
.section {
background-image: url('bg.jpg');
background-repeat: no-repeat;
background-position: center;
background-size: cover;
}CSSOptimización de imágenes de fondo para una carga rápida
¡Un fondo bonito no debe ralentizar tu sitio web! En la actualidad, la velocidad de carga de las páginas es crucial tanto para el SEO como para la retención de usuarios.
Nota del autor:
El año pasado trabajamos en la actualización del sitio web de una gran tienda online. El cliente insistía en usar imágenes de fondo de alta calidad en la página principal, pero después de implementar todas las modificaciones, el tiempo de carga aumentó a 8 segundos: ¡una catástrofe para el comercio electrónico!
“Probemos a optimizar tus fondos, en lugar de sacrificarlos por completo”, sugerí. Comprimimos las imágenes, las convertimos a WebP, añadimos carga progresiva y almacenamiento en caché adecuado. El tiempo de carga bajó a 1,8 segundos, y al cabo de un mes la conversión aumentó un 14,5%. El cliente estaba encantado: el diseño bonito y el rendimiento pueden coexistir si se aborda el tema con conocimiento técnico.
Elección del formato de imagen óptimo
Los formatos modernos son significativamente más eficientes que los tradicionales:
| Formato | Ventajas | Desventajas | Recomendaciones de uso |
|---|---|---|---|
| WebP | 25-35% más pequeño que JPEG con la misma calidad, admite transparencia | No es compatible con navegadores antiguos | Ideal para la mayoría de las imágenes de fondo en 2025 |
| AVIF | Mejor compresión (hasta 50% más compacto que WebP) | Compatibilidad limitada con los navegadores | Para proyectos avanzados con opciones alternativas |
| JPEG | Compatibilidad universal | Mayor tamaño, no admite transparencia | Para imágenes fotográficas, si la compatibilidad es importante |
| PNG | Admite transparencia, alta calidad | Gran tamaño para fotos | Para imágenes con transparencia o gráficos |
| SVG | Formato vectorial, ideal para escalar | No es adecuado para imágenes fotorrealistas | Para patrones, iconos y fondos geométricos |
Técnicas de optimización del tamaño de los archivos
- Compresión sin pérdida: usa herramientas como TinyPNG, ImageOptim o Squoosh para comprimir imágenes sin una degradación visible de la calidad (ahorro del 20-70%).
- Escalado correcto: no cargues imágenes de 2500px si el ancho máximo del contenedor es de 1200px.
- Eliminación de metadatos: la geolocalización, los datos de la cámara y otros metadatos pueden ocupar hasta el 15% del tamaño del archivo.
- Gradientes CSS en lugar de imágenes: para fondos simples, considera usar gradientes CSS, especialmente para crear un efecto de superposición.
Implementación de la carga diferida
Para las imágenes de fondo que están “debajo del pliegue”, utiliza la carga diferida:
Solución con JavaScript:
document.addEventListener("DOMContentLoaded", function() {
const lazyBackgrounds = [].slice.call(document.querySelectorAll(".lazy-background"));
if ("IntersectionObserver" in window) {
let lazyBackgroundObserver = new IntersectionObserver(function(entries, observer) {
entries.forEach(function(entry) {
if (entry.isIntersecting) {
entry.target.style.backgroundImage = `url(${entry.target.dataset.background})`;
lazyBackgroundObserver.unobserve(entry.target);
}
});
});
lazyBackgrounds.forEach(function(lazyBackground) {
lazyBackgroundObserver.observe(lazyBackground);
});
}
});JavaScriptHTML:
<div class="lazy-background" data-background="large-image.jpg"></div>HTMLImágenes de fondo adaptativas para diferentes dispositivos
Tu sitio web se ve en dispositivos con resoluciones desde 360px hasta 4K y superiores. Cada píxel de la pantalla es importante, y tus imágenes de fondo deben verse perfectas en todas partes.
Adaptabilidad básica con consultas de medios
Usa consultas de medios para cargar diferentes imágenes según el tamaño de la pantalla:
CSS:
.hero-section {
background-image: url('mobile-bg.jpg');
background-repeat: no-repeat;
background-size: cover;
}
@media (min-width: 768px) {
.hero-section {
background-image: url('tablet-bg.jpg');
}
}
@media (min-width: 1200px) {
.hero-section {
background-image: url('desktop-bg.jpg');
}
}CSSPosicionamiento adaptativo
A veces es más importante no cambiar la imagen en sí, sino adaptar su posicionamiento:
CSS:
.profile-section {
background-image: url('team-photo.jpg');
background-size: cover;
background-position: center top;
}
@media (max-width: 992px) {
.profile-section {
background-position: 70% center; /* Desplazamos el foco de la imagen en móviles */
}
}CSSTécnica de fondos múltiples
CSS permite usar varias imágenes de fondo a la vez, lo que ofrece interesantes posibilidades para el diseño adaptativo:
CSS:
.section-with-overlay {
background-image:
linear-gradient(rgba(0, 0, 0, 0.7), rgba(0, 0, 0, 0.3)),
url('background.jpg');
background-size: cover;
background-position: center;
}
@media (max-width: 768px) {
.section-with-overlay {
background-image:
linear-gradient(rgba(0, 0, 0, 0.8), rgba(0, 0, 0, 0.5)),
url('background-mobile.jpg');
}
}CSSVariables CSS para una adaptabilidad flexible
Usa variables CSS para esquemas adaptativos más complejos:
CSS:
:root {
--main-bg-image: url('desktop.jpg');
}
@media (max-width: 992px) {
:root {
--main-bg-image: url('tablet.jpg');
}
}
@media (max-width: 576px) {
:root {
--main-bg-image: url('mobile.jpg');
}
}
.hero {
background-image: var(--main-bg-image);
background-size: cover;
}CSSArt direction vs. cambio de resolución
Existen dos enfoques principales para las imágenes de fondo adaptativas:
- Art direction: uso de diferentes fragmentos de la imagen para diferentes tamaños de pantalla (por ejemplo, un primer plano más grande en dispositivos móviles).
- Cambio de resolución: uso de la misma imagen con diferentes resoluciones para diferentes dispositivos.
Errores comunes al trabajar con fondos en HTML
Incluso los desarrolladores experimentados cometen errores al trabajar con fondos. Veamos los más comunes y cómo evitarlos.
Rutas incorrectas a las imágenes
El error más común es indicar rutas incorrectas a los archivos de imagen:
- Rutas absolutas vs. relativas: recuerda que en CSS las rutas relativas se cuentan desde la ubicación del archivo CSS, no del documento HTML.
- Registro de nombres de archivos: en los servidores Linux, el registro importa (
background.jpgyBackground.jpgson archivos diferentes). - Ausencia de comillas alrededor de la URL: aunque técnicamente las comillas no siempre son obligatorias, su ausencia puede causar problemas con rutas que contienen espacios.
Incorrecto:
.hero {
background-image: url(images/background.jpg); /* ¡La ruta se refiere al archivo HTML! */
}CSSCorrecto:
.hero {
background-image: url('../images/background.jpg'); /* Ruta desde el archivo CSS a la imagen */
}CSSProblemas con las dimensiones del contenedor
La imagen de fondo no será visible si su contenedor no tiene las dimensiones especificadas:
- Ausencia de altura: si el elemento no contiene texto u otros elementos, su altura predeterminada puede ser cero.
- Posicionamiento relativo de los elementos padres: puede afectar a cómo se calculan las dimensiones.
- Colapso de márgenes: puede provocar dimensiones inesperadas del contenedor.
Incorrecto:
<div class="hero"></div>HTML.hero {
background-image: url('hero.jpg');
background-size: cover;
/* ¡Falta la altura! */
}CSSCorrecto:
<div class="hero"></div>HTML.hero {
background-image: url('hero.jpg');
background-size: cover;
height: 500px; /* u otro valor */
}CSSSubestimación de los dispositivos móviles
Usar la misma imagen grande para todos los dispositivos es un error grave:
- Resolución excesiva: cargar una imagen de 2500px en un dispositivo móvil con un ancho de pantalla de 375px es una pérdida de recursos.
- Recorte incorrecto: las fotos panorámicas anchas pueden verse mal en pantallas móviles verticales.
- Ausencia de opciones alternativas: ignorar los navegadores antiguos que no admiten formatos de imagen modernos.
Ignorar problemas de accesibilidad
Las imágenes de fondo requieren atención a la accesibilidad:
- Contraste insuficiente: el texto sobre las imágenes de fondo debe tener suficiente contraste.
- Ausencia de información alternativa: dado que las imágenes de fondo se agregan a través de CSS, no tienen el atributo
alt. - Fondos animados: pueden molestar a los usuarios con trastornos vestibulares.
Solución al problema del contraste:
.section-with-text {
background-image: url('dark-image.jpg');
background-size: cover;
color: white; /* Texto claro sobre fondo oscuro */
}
/* O añadiendo una superposición semitransparente */
.section-with-text {
position: relative;
}
.section-with-text::before {
content: '';
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: rgba(0, 0, 0, 0.5); /* Superposición oscura */
z-index: 1;
}
.section-with-text > * {
position: relative;
z-index: 2; /* Contenido sobre la superposición */
}CSSDominar el trabajo con imágenes de fondo en HTML y CSS te abrirá nuevas posibilidades en la creación de proyectos web visualmente atractivos. Comienza con técnicas sencillas, añadiendo gradualmente técnicas avanzadas de optimización y adaptabilidad.
Recuerda que la imagen de fondo ideal no es solo una imagen bonita, sino también un recurso optimizado, de carga rápida, que se ve genial en cualquier dispositivo. Experimenta con diferentes enfoques, ¡y que tus sitios web siempre destaquen por su diseño profesional y bien pensado! Acabas de aprender cómo poner una imagen de fondo en HTML.







Quiero comentar algo