Imágenes HTML e imágenes de fondo con CSS

Imágenes HTML frente a imágenes de fondo CSS: cuándo usar cada una | We.Inc

Elige entre <img> y background-image, escribe texto alt, evita los saltos de diseño, crea srcset y sizes, aplica carga diferida y sirve WebP o AVIF con <picture>.

Imágenes HTML e imágenes de fondo con CSS

Usa un <img> cuando la imagen es contenido: una foto de producto, un gráfico, un retrato. Dale texto alt, width y height. Usa un background-image de CSS cuando la imagen es decoración detrás del texto. Añade srcset y sizes para que los teléfonos descarguen archivos más pequeños, y loading="lazy" en las imágenes por debajo de la primera pantalla, nunca en la imagen de portada.

¿<img> o background-image?

Una tabla de decisión, un generador de srcset que muestra qué archivo descargaría un teléfono o un portátil, y ejemplos editables de cada patrón: texto alt, dimensiones fijas, carga diferida, una imagen de portada rápida, recorte con object-fit junto a background-size, formatos modernos con <picture> y fondos adaptables con image-set().

Preguntas frecuentes

¿background-image es malo para el SEO?

Los buscadores indexan las imágenes de los elementos <img> de forma mucho más fiable que las definidas en CSS. Si quieres que una imagen aparezca en la búsqueda de imágenes o que describa tu contenido, ponla en un <img> con un buen texto alt. Los fondos decorativos no pierden nada por estar en CSS.

¿Qué debe decir el texto alt?

Lo que muestra la imagen que importa en ese contexto, en una frase corta. En una foto de producto puede ser el producto y su color; en un gráfico, la conclusión principal. Evita expresiones como imagen de. Si la imagen es un enlace, describe adónde lleva.

¿Qué diferencia hay entre srcset con w y con x?

Los descriptores de ancho (480w, 960w) indican el ancho real de cada archivo y dejan que el navegador elija según el atributo sizes y la densidad de píxeles de la pantalla. Los descriptores de densidad (1x, 2x) sirven para imágenes que siempre se muestran a un tamaño fijo, como un logo.

¿Sigo usando loading="lazy" si uso un framework?

La carga diferida nativa funciona en todos los navegadores principales actuales, así que un simple atributo basta para la mayoría de las imágenes. Los componentes de imagen de los frameworks suelen añadirlo por ti; comprueba que no apliquen también carga diferida a la imagen de portada.

¿Necesito WebP y AVIF a la vez?

No siempre. Los dos formatos son compatibles con los navegadores principales actuales. AVIF suele pesar menos en fotos, pero tarda más en codificarse. Un elemento <picture> con una fuente AVIF, una fuente WebP y un JPEG de respaldo cubre a todo el mundo, pero solo WebP con un JPEG de respaldo es una opción más sencilla y razonable.

Contenido o decoración

Cómo elige el navegador en srcset

Saltos de diseño y la imagen de portada

Un <img> completo

alt, width, height y carga diferida

Los atributos indican el tamaño real; CSS lo hace fluido. Gracias a width y height, la caja queda reservada antes de que cargue el archivo. Las imágenes de la demo son pequeños SVG en línea.

La imagen de portada: carga inmediata y prioridad alta

Usa esto en la única imagen grande de la parte superior de la página. Todo lo que está por debajo de la primera pantalla lleva loading="lazy".

Reglas del texto alt

Texto alt según el tipo de imagen

object-fit: cover junto a background-size: cover

Ambos recortan una imagen para llenar una caja sin estirarla. object-position y background-position eligen qué parte queda a la vista.

El mismo recorte, de dos formas

A la izquierda, un <img> con object-fit; a la derecha, un div con fondo. Se ven iguales; solo el de la izquierda tiene texto alt y carga diferida.

Imágenes de fondo con CSS

Un fondo detrás de texto, con color de respaldo

El degradado oscuro superpuesto mantiene legible el texto blanco sobre cualquier foto, y el color de fondo aparece si la imagen falla.

Fondos adaptables con image-set()

image-set() deja que el navegador elija por densidad de píxeles o por tipo de archivo. Pon primero una línea con url() simple para los navegadores antiguos.

WebP y AVIF con <picture>

Formatos modernos con un JPEG de respaldo

El navegador usa el primer <source> cuyo tipo admite. El <img> de dentro lleva el texto alt, el tamaño y el archivo de respaldo, y es el elemento al que das estilo.

Generador de srcset y sizes

Anchos que exportas (px)

Ruta del archivo sin el ancho

Extensión

¿A qué ancho se dibuja la imagen?

Introduce al menos un ancho.

Copiar

¿Qué archivo descargaría un dispositivo?

Teléfono pequeño

Teléfono grande

Tableta

Portátil

Portátil Retina

Ancho de pantalla: {vw}px

Densidad de píxeles: {dpr}x

La imagen se dibuja a {slot}px de ancho, así que el navegador necesita unos {px} píxeles del dispositivo y normalmente descargaría

nada todavía

(el archivo más grande, que es menor de lo ideal: plantéate exportar uno más ancho)

Los navegadores pueden elegir un archivo menor con una conexión lenta o uno mayor que ya tengan en caché; esto muestra la elección habitual.

Empieza gratis · Sin tarjeta de crédito

Relacionado: Guías

Producto

Para quién es

Funciones

Recursos

Empresa

Mapa del sitio