La Etiqueta SOURCE

Se utiliza para proporcionar múltiples recursos de medios (imágenes, audio, video) en diferentes formatos o tamaños, permitiendo al navegador elegir la opción más adecuada según la compatibilidad del formato, el tamaño de la pantalla u otros criterios.
La etiqueta <source> en HTML se utiliza para proporcionar múltiples recursos de medios (imágenes, audio, video) en diferentes formatos o tamaños, permitiendo al navegador elegir la opción más adecuada según la compatibilidad del formato, el tamaño de la pantalla u otros criterios. Es esencial para optimizar la carga de recursos y garantizar compatibilidad entre navegadores.
¿Para qué sirve <source>?
-
Propósito:
-
Especificar alternativas de recursos para elementos como
<picture>,<audio>y<video>. -
Mejorar la compatibilidad (ejemplo: ofrecer formatos como MP4, WebM y Ogg para video).
-
Optimizar recursos en diseño responsivo (ejemplo: cargar imágenes según el ancho de pantalla).
-
-
Etiqueta vacía: No requiere cierre (
</source>).
Atributos principales
| Atributo | Descripción |
|---|---|
src |
Ruta al archivo de recurso (obligatorio en <audio> y <video>). |
srcset |
Lista de imágenes para <picture> (se usa con sizes). |
type |
Tipo MIME del recurso (ejemplo: image/webp, video/mp4). |
media |
Consulta de medios (media query) para aplicar el recurso en ciertos viewports. |
sizes |
Define tamaños de imagen para <picture> (junto con srcset). |
Casos de uso y ejemplos
a) En <picture>: Imágenes responsivas
Proporciona diferentes versiones de una imagen según el tamaño de pantalla o formato soportado.
<picture> <!-- Usa WebP si el navegador lo soporta --> <source srcset="imagen.webp" type="image/webp"> <!-- Carga JPEG como alternativa --> <img src="imagen.jpg" alt="Imagen de ejemplo"> </picture>
Ejemplo con media y srcset:
<picture>
<!-- Imagen para pantallas grandes (min-width: 800px) -->
<source
media="(min-width: 800px)"
srcset="imagen-grande.jpg"
>
<!-- Imagen para móviles -->
<img
src="imagen-mobile.jpg"
alt="Imagen responsiva"
>
</picture>
b) En <audio>: Formatos alternativos
Ofrece múltiples formatos de audio para garantizar compatibilidad.
<audio controls> <source src="audio.mp3" type="audio/mpeg"> <source src="audio.ogg" type="audio/ogg"> <p>Tu navegador no soporta audio. Descarga el <a href="audio.mp3">archivo</a>.</p> </audio>
c) En <video>: Formatos alternativos
Proporciona varios formatos de video.
<video controls width="600"> <source src="video.mp4" type="video/mp4"> <source src="video.webm" type="video/webm"> <p>Tu navegador no soporta video HTML5.</p> </video>
Buenas prácticas
-
Orden de los
<source>:-
El navegador usa el primer recurso compatible. Ordena los formatos de más moderno a menos (ejemplo: WebM antes que MP4).
-
-
Incluye el atributo
type:-
Ayuda al navegador a identificar rápidamente si puede reproducir el recurso.
-
-
Usa
srcsetysizespara imágenes:-
Optimiza el rendimiento cargando imágenes según el ancho de pantalla.
-
-
Provee contenido de respaldo:
-
Dentro de
<audio>o<video>, añade un mensaje o enlace para navegadores antiguos.
-
Ejemplo avanzado: <picture> con srcset y sizes
<picture>
<!-- Imagen WebP para navegadores modernos -->
<source
srcset="
imagen-480w.webp 480w,
imagen-800w.webp 800w
"
sizes="(max-width: 600px) 480px, 800px"
type="image/webp"
>
<!-- JPEG como alternativa -->
<source
srcset="
imagen-480w.jpg 480w,
imagen-800w.jpg 800w
"
sizes="(max-width: 600px) 480px, 800px"
type="image/jpeg"
>
<!-- Imagen predeterminada -->
<img
src="imagen-800w.jpg"
alt="Imagen optimizada"
>
</picture>
Explicación:
-
srcset: Lista de imágenes y sus anchos (480w = 480px de ancho). -
sizes: Define cómo se mostrará la imagen en diferentes viewports.
Compatibilidad
-
Navegadores modernos: Soporte total para
<source>en<picture>,<audio>y<video>. -
Navegadores antiguos:
-
<picture>: No soportado en IE11 (usa Polyfill o<img>como respaldo). -
<audio>/<video>: Requieren formatos alternativos como MP3 o MP4.
-
Errores comunes
Olvidar el type:
<source src="video.mp4"> <!-- Falta type="video/mp4" -->
Orden incorrecto de <source>:
<video> <source src="video.mp4" type="video/mp4"> <!-- El navegador podría ignorar WebM --> <source src="video.webm" type="video/webm"> </video>
Conclusión
La etiqueta <source> es clave para:
-
Optimizar recursos: Cargar imágenes/videos según el dispositivo.
-
Garantizar compatibilidad: Ofrecer múltiples formatos.
-
Mejorar rendimiento: Reducir el peso de los archivos.
Ejemplo rápido:
<!-- Imagen responsiva y moderna --> <picture> <source srcset="logo.webp" type="image/webp"> <img src="logo.png" alt="Logo"> </picture>
¡Usa <source> para crear experiencias web más eficientes y accesibles!