Imágenes responsivas en la era de alto DPR y CSS image-set 2025
Publicado: 22 sept 2025 · Tiempo de lectura: 2 min · Por el equipo editorial de Unified Image Tools
Belleza vs bytes: el punto óptimo lo determinan srcset
/sizes
y image-set()
en CSS.
TL;DR
-
Elementos de ancho fijo: notación x (1x/2x); layouts fluidos: notación w +
sizes
-
Fondos detrás de texto: cambia por DPR con
image-set()
de CSS -
Limita la resolución del bitmap para evitar sobre‑transferencia incluso en pantallas de alta densidad
-
Ajusta por separado las candidatas a LCP con
fetchpriority="high"
-
Enlaces internos: Generador de Srcset, Entrega enfocada en INP, Prioridad y preload de imágenes
Tabla rápida de uso
- Tarjetas/miniaturas fijas:
srcset="… 1x, … 2x"
- Hero/layout fluido:
srcset="… 800w, … 1200w" + sizes
- Fondo CSS:
background-image: image-set(url(...@1x.avif) 1x, url(...@2x.avif) 2x)
Ejemplos
<img
src="/imgs/card@1x.avif"
srcset="/imgs/card@1x.avif 1x, /imgs/card@2x.avif 2x"
width="320" height="200" alt="Tarjeta"
decoding="async" loading="lazy"
/>
<!-- Layout fluido: w + sizes -->
<img
src="/imgs/hero-1200.avif"
srcset="/imgs/hero-800.avif 800w, /imgs/hero-1200.avif 1200w, /imgs/hero-1600.avif 1600w"
sizes="(max-width: 768px) 92vw, 1200px"
width="1200" height="630" fetchpriority="high"
alt="Hero"
/>
.hero {
background-image: image-set(
url('/imgs/cover@1x.avif') 1x,
url('/imgs/cover@2x.avif') 2x
);
background-size: cover;
}
Errores frecuentes
- Usar siempre
sizes: 100vw
→ selecciona imágenes más grandes de lo necesario y desperdicia ancho de banda - Mantener el bitrate 2x igual al 1x → duplica tamaño; controla calidad con PSNR/SSIM
- Sin 1x/2x en fondos CSS → texto borroso o payload pesado
Consejos operativos
- Genera
@1x/@2x
y escalonesw
en CI - Centraliza definiciones
image-set()
como variables de tema - Sintoniza por separado las candidatas a LCP (prioridad/preload)
Lista de verificación
- [ ] Regla: x para fijo, w+sizes para fluido
- [ ] Usa
image-set()
para alta densidad (DPR) - [ ] Define
fetchpriority
para candidatas a LCP - [ ] Supervisa transferencia desperdiciada y desenfoque a la vez
Resumen
Para satisfacer “apariencia” y “bytes” a la vez, ten srcset
/sizes
/image-set()
en tu caja de herramientas.
Artículos relacionados
Arquitectura de redimensionamiento en 2025 — Reducir un 30–70% el desperdicio partiendo del layout
Desde derivar el ancho objetivo a partir del layout, generar múltiples tamaños e implementar srcset/sizes. Un método práctico para lograr la mayor reducción.
Diseño de imágenes responsivas 2025 — Guía práctica de srcset/sizes
Desde breakpoints y densidad de píxeles, calcula hacia atrás para escribir correctamente srcset/sizes. Hoja de ruta definitiva que cubre LCP, dirección de arte e iconos/SVG.
Fundamentos de la optimización de imágenes 2025 — Una base fiable sin adivinanzas
Conceptos básicos actuales para entregar imágenes rápidas y bonitas en cualquier sitio. En este orden: Redimensionar → Comprimir → Responsive → Caché para una operación estable.