En esta página
Imagenes, video, audio y contenido multimedia
Imagenes en HTML
Las imagenes son fundamentales en cualquier página web. El elemento <img> permite insertar imagenes y es un elemento vacio (no tiene etiqueta de cierre).
Atributos esenciales
Toda imagen necesita al menos dos atributos:
<img src="ruta-de-la-imagen.jpg" alt="Descripcion de la imagen">src— La ruta o URL de la imagenalt— Texto alternativo que describe la imagen
El atributo alt es crucial por tres razones:
- Accesibilidad: Los lectores de pantalla leen este texto a usuarios con discapacidad visual
- SEO: Los motores de busqueda usan el texto alternativo para indexar imagenes
- Fallback: Se muestra cuando la imagen no puede cargarse
Dimensiones de imagen
Siempre específica width y height en las imagenes para evitar el layout shift (salto de contenido mientras la página carga):
<img
src="foto.jpg"
alt="Paisaje montanoso"
width="800"
height="600"
>Estos valores definen el aspect ratio que el navegador reserva antes de descargar la imagen. El CSS puede luego redimensionar la imagen, pero el espacio ya esta reservado.
Formatos de imagen
Elegir el formato correcto impacta directamente en el rendimiento:
| Formato | Uso ideal | Transparencia | Animación |
|---|---|---|---|
| JPEG | Fotografias | No | No |
| PNG | Graficos con transparencia | Si | No |
| WebP | Todo uso (moderno) | Si | Si |
| AVIF | Todo uso (más moderno) | Si | Si |
| SVG | Iconos y graficos vectoriales | Si | Si |
| GIF | Animaciones simples | Si (1 bit) | Si |
Imagenes responsive con picture
El elemento <picture> permite servir diferentes imagenes segun el dispositivo o formato soportado:
<picture>
<source srcset="imagen.avif" type="image/avif">
<source srcset="imagen.webp" type="image/webp">
<img src="imagen.jpg" alt="Descripcion" width="800" height="600">
</picture>El navegador usa la primera fuente que soporte. El <img> final actua como fallback universal.
Carga diferida (Lazy Loading)
El atributo loading controla cuando se descarga una imagen:
<!-- Se carga inmediatamente (por defecto) -->
<img src="hero.jpg" alt="Banner principal" loading="eager">
<!-- Se carga cuando esta cerca del viewport -->
<img src="sección-3.jpg" alt="Contenido secundario" loading="lazy">Usa loading="lazy" en imagenes que no son visibles al cargar la página. Las imagenes del hero o encabezado deben mantener loading="eager" (o no poner el atributo).
Figuras con caption
El elemento <figure> agrupa una imagen con su leyenda (<figcaption>):
<figure>
<img src="grafico-ventas.png" alt="Grafico de barras mostrando ventas trimestrales" width="600" height="400">
<figcaption>Ventas por trimestre en 2025. Fuente: departamento comercial.</figcaption>
</figure>Esto es semanticamente correcto y ayuda a los motores de busqueda a asociar la leyenda con la imagen.
Video en HTML
El elemento <video> permite incrustar video directamente sin necesidad de plugins:
<video controls width="640" height="360" poster="miniatura.jpg">
<source src="video.webm" type="video/webm">
<source src="video.mp4" type="video/mp4">
<p>Tu navegador no soporta video HTML5.</p>
</video>Atributos importantes de <video>:
controls— Muestra los controles de reproduccionposter— Imagen de miniatura antes de reproducirpreload—none,metadata, oautoautoplay— Reproduce automaticamente (requieremuted)muted— Silenciado por defectoloop— Reproduce en bucle
Audio en HTML
El elemento <audio> funciona de forma similar a <video>:
<audio controls preload="metadata">
<source src="audio.ogg" type="audio/ogg">
<source src="audio.mp3" type="audio/mpeg">
</audio>Contenido incrustado con iframe
El elemento <iframe> permite incrustar contenido externo como videos de YouTube o mapas:
<iframe
src="https://www.youtube.com/embed/abc123"
width="560"
height="315"
title="Tutorial de HTML básico"
allow="accelerometer; autoplay; clipboard-write"
allowfullscreen
loading="lazy"
></iframe>Siempre agrega el atributo title a los iframes para la accesibilidad.
Práctica
- Inserta imagenes con buenas prácticas: Agrega 3 imagenes a una página: una informativa con
altdescriptivo, una decorativa conalt="", y una dentro de un<figure>con<figcaption>. Incluyewidthyheighten todas. - Usa el elemento picture: Crea un
<picture>que sirva una imagen WebP como fuente principal y un JPG como fallback, adaptandose a distintos tamanos de pantalla conmedia. - Anade un video con fallback: Inserta un
<video>concontrols,poster, dos formatos de<source>(webm y mp4) y un mensaje de texto para navegadores que no soporten video.
En la siguiente leccion aprenderemos a organizar datos en tablas HTML.
<!-- Imagen básica con texto alternativo -->
<img
src="foto-equipo.jpg"
alt="Equipo de desarrollo reunido en la oficina"
width="800"
height="450"
>
<!-- Imagen responsive con picture -->
<picture>
<source
media="(min-width: 768px)"
srcset="banner-desktop.webp"
type="image/webp"
>
<source
media="(min-width: 768px)"
srcset="banner-desktop.jpg"
>
<img
src="banner-mobile.jpg"
alt="Banner promocional del curso de HTML"
width="400"
height="300"
loading="lazy"
>
</picture>
<!-- Video con controles y poster -->
<video
controls
width="640"
height="360"
poster="miniatura.jpg"
preload="metadata"
>
<source src="leccion-1.webm" type="video/webm">
<source src="leccion-1.mp4" type="video/mp4">
<p>Tu navegador no soporta video HTML5.
<a href="leccion-1.mp4">Descargar video</a>
</p>
</video>
<!-- Audio con controles -->
<audio controls preload="metadata">
<source src="podcast-ep1.ogg" type="audio/ogg">
<source src="podcast-ep1.mp3" type="audio/mpeg">
<p>Tu navegador no soporta audio HTML5.</p>
</audio>
Inicia sesión para guardar tu progreso