Trabajando con Imágenes en HTML: Una Guía Completa del Tag <img>
Domina las imágenes HTML con esta guía completa que cubre el tag img, texto alternativo, formatos de archivo, imágenes responsivas, srcset y optimización de rendimiento web.
Domina las imágenes HTML con esta guía completa que cubre el tag img, texto alternativo, formatos de archivo, imágenes responsivas, srcset y optimización de rendimiento web.
<img>
ExplicadoEl tag <img>
es un elemento HTML auto-cerrado utilizado para incrustar imágenes en páginas web. A diferencia de otros elementos HTML, no requiere un tag de cierre y utiliza atributos para definir la fuente y propiedades de la imagen.
<img src="ruta/a/imagen.jpg" alt="Descripción de la imagen" />
<img>
Atributos Requeridos:
src
: Especifica la ruta al archivo de imagenalt
: Proporciona texto alternativo para accesibilidadAtributos Opcionales:
width
: Establece el ancho de la imagen en píxelesheight
: Establece la altura de la imagen en píxelestitle
: Añade un tooltip al pasar el cursor sobre la imagenloading
: Controla cuándo se carga la imagen (carga perezosa)<img
src="imagenes/atardecer-playa.jpg"
alt="Hermoso atardecer sobre una playa tropical con palmeras"
width="800"
height="600"
title="Paraíso de Playa al Atardecer"
loading="lazy"
/>
El texto alternativo (alt text) es crucial para la accesibilidad web y SEO. Sirve múltiples propósitos:
Buenos Ejemplos de Texto Alternativo:
<!-- Descriptivo y específico -->
<img
src="golden-retriever.jpg"
alt="Golden retriever jugando a buscar en un parque soleado"
/>
<!-- Descripción funcional para botones -->
<img src="icono-buscar.png" alt="Buscar" />
<!-- Alt vacío para imágenes decorativas -->
<img src="borde-decorativo.png" alt="" />
Mejores Prácticas para Texto Alternativo:
alt=""
) para imágenes puramente decorativasEjemplos Pobres de Texto Alternativo:
<!-- Muy vago -->
<img src="perro.jpg" alt="perro" />
<!-- Redundante -->
<img src="atardecer.jpg" alt="Imagen de un atardecer" />
<!-- Muy largo -->
<img
src="oficina.jpg"
alt="Un edificio de oficinas moderno muy grande con ventanas de vidrio y construcción de marco de acero ubicado en el área del centro con personas caminando"
/>
Elegir el formato de imagen correcto es crucial para el rendimiento web y la calidad. Aquí están los principales formatos y sus casos de uso:
Mejor para: Fotografías e imágenes con muchos colores
Características:
<img src="foto-paisaje.jpg" alt="Paisaje montañoso al amanecer" />
Mejor para: Imágenes con transparencia, logos, gráficos con pocos colores
Características:
<img src="logo-empresa.png" alt="Logo de la empresa Mediaweb" />
Mejor para: Aplicaciones web modernas (cuando es soportado)
Características:
<picture>
<source srcset="imagen-hero.webp" type="image/webp" />
<img src="imagen-hero.jpg" alt="Banner hero mostrando nuestro producto" />
</picture>
Mejor para: Gráficos simples, iconos, logos que necesitan escalar
Características:
<img src="icono-flecha.svg" alt="Flecha derecha" />
Mejor para: Animaciones simples (usar con moderación)
Características:
Los sitios web modernos deben funcionar en varios tamaños de pantalla y resoluciones. Las imágenes responsivas aseguran rendimiento y calidad óptimos en todos los dispositivos.
srcset
El atributo srcset
te permite proporcionar múltiples fuentes de imagen para diferentes condiciones de pantalla:
<img
src="imagen-800w.jpg"
srcset="imagen-400w.jpg 400w, imagen-800w.jpg 800w, imagen-1200w.jpg 1200w"
sizes="(max-width: 600px) 400px, (max-width: 1000px) 800px, 1200px"
alt="Imagen de paisaje responsiva"
/>
Descriptores de Ancho (w
):
srcset=" imagen-pequeña.jpg 400w, imagen-mediana.jpg 800w, imagen-grande.jpg
1200w "
Descriptores de Densidad (x
):
srcset=" imagen.jpg 1x, imagen-2x.jpg 2x, imagen-3x.jpg 3x "
<picture>
Para escenarios de imagen responsiva más complejos, usa el elemento <picture>
:
<picture>
<!-- Móvil: imagen más pequeña, recortada -->
<source media="(max-width: 600px)" srcset="movil-hero.jpg" />
<!-- Tablet: imagen de tamaño mediano -->
<source media="(max-width: 1024px)" srcset="tablet-hero.jpg" />
<!-- Escritorio: imagen de tamaño completo -->
<source media="(min-width: 1025px)" srcset="escritorio-hero.jpg" />
<!-- Respaldo para navegadores antiguos -->
<img
src="escritorio-hero.jpg"
alt="Banner hero mostrando nuestros servicios"
/>
</picture>
Usa diferentes imágenes para diferentes tamaños de pantalla:
<picture>
<!-- Móvil: orientación vertical -->
<source media="(max-width: 600px)" srcset="imagen-vertical.jpg" />
<!-- Escritorio: orientación horizontal -->
<img
src="imagen-horizontal.jpg"
alt="Colaboración del equipo en oficina moderna"
/>
</picture>
La optimización de imágenes es crucial para sitios web de carga rápida. Aquí están las técnicas esenciales:
<!-- No hagas esto: imagen grande escalada hacia abajo -->
<img
src="imagen-enorme-4000x3000.jpg"
width="400"
height="300"
alt="Foto del producto"
/>
<!-- Haz esto: imagen apropiadamente dimensionada -->
<img
src="producto-400x300.jpg"
width="400"
height="300"
alt="Foto del producto"
/>
<!-- Navegadores modernos -->
<img src="imagen.jpg" alt="Descripción" loading="lazy" />
<!-- Con respaldo de intersection observer -->
<img
src="marcador.jpg"
data-src="imagen-actual.jpg"
alt="Descripción"
class="lazy-load"
loading="lazy"
/>
Para imágenes JPEG:
Para imágenes PNG:
<picture>
<!-- Formato moderno para navegadores compatibles -->
<source srcset="imagen.avif" type="image/avif" />
<source srcset="imagen.webp" type="image/webp" />
<!-- Respaldo para todos los navegadores -->
<img src="imagen.jpg" alt="Descripción" />
</picture>
<!-- Previene cambio de diseño -->
<img
src="imagen.jpg"
alt="Descripción"
width="800"
height="600"
style="max-width: 100%; height: auto;"
/>
Crear áreas clicables dentro de una imagen:
<img src="mapa-mundial.jpg" alt="Mapa mundial" usemap="#mapamundial" />
<map name="mapamundial">
<area
shape="rect"
coords="0,0,100,100"
href="norteamerica.html"
alt="Norteamérica"
/>
<area shape="circle" coords="200,200,50" href="europa.html" alt="Europa" />
</map>
Proporcionar significado semántico y leyendas:
<figure>
<img
src="grafico.jpg"
alt="Gráfico de crecimiento de ventas mostrando 25% de aumento"
/>
<figcaption>
Crecimiento de Ventas: Q4 2024 muestra 25% de aumento sobre el trimestre
anterior
</figcaption>
</figure>
Estilizar imágenes con CSS:
<img src="perfil.jpg" alt="Foto de perfil del usuario" class="imagen-perfil" />
.imagen-perfil {
width: 150px;
height: 150px;
border-radius: 50%;
object-fit: cover;
border: 3px solid #007bff;
}
<!-- Incorrecto -->
<img src="grafico-importante.jpg" />
<!-- Correcto -->
<img
src="grafico-importante.jpg"
alt="Gráfico de crecimiento de ingresos mostrando 40% de aumento"
/>
<!-- Incorrecto: texto en imagen -->
<img src="texto-encabezado.jpg" alt="Bienvenido a Nuestro Sitio Web" />
<!-- Correcto: texto real -->
<h1>Bienvenido a Nuestro Sitio Web</h1>
<!-- Incorrecto: archivo enorme -->
<img src="foto-5mb.jpg" alt="Foto del equipo" />
<!-- Correcto: archivo optimizado -->
<img src="foto-optimizada-200kb.jpg" alt="Foto del equipo" />
<!-- Incorrecto: tamaño fijo -->
<img src="hero.jpg" width="1200" height="800" alt="Imagen hero" />
<!-- Correcto: responsivo -->
<img
src="hero.jpg"
srcset="hero-400w.jpg 400w, hero-800w.jpg 800w, hero-1200w.jpg 1200w"
sizes="100vw"
alt="Imagen hero"
style="max-width: 100%; height: auto;"
/>
Trabajar con imágenes en HTML involucra mucho más que solo añadir un tag <img>
a tu página. Al entender la implementación apropiada, requisitos de accesibilidad, formatos de archivo, técnicas responsivas y estrategias de optimización, puedes crear sitios web que sean rápidos, accesibles y visualmente atractivos en todos los dispositivos.
Recuerda que las imágenes impactan significativamente tanto la experiencia del usuario como el rendimiento del sitio web. Tómate el tiempo para implementar estas técnicas apropiadamente, y tus usuarios te lo agradecerán con mejor engagement y cargas de página más rápidas.
Comienza implementando estas técnicas de optimización de imagen en tu próximo proyecto, y verás mejoras inmediatas tanto en rendimiento como en puntuaciones de accesibilidad.
Continúa leyendo con estos artículos relacionados
Aprende a crear y estilizar listas en HTML con elementos ul, ol y dl. Guía completa sobre listas anidadas, accesibilidad y mejores prácticas de CSS.
Aprende a crear tablas HTML desde lo básico hasta técnicas avanzadas. Domina los elementos table, tr, td, th, accesibilidad, diseño responsivo y cuándo usar tablas apropiadamente.
Aprende a crear formularios HTML interactivos con tipos de input, etiquetas, botones y validación básica. Domina la accesibilidad de formularios y mejores prácticas.
Descubre el poder de los elementos HTML semánticos como header, footer, article y section. Aprende cómo el marcado semántico mejora el SEO, la accesibilidad y la mantenibilidad del código.