Artículos
HTML5

Cargar imágenes por resolución con HTML5

11/Feb/2021

Normalmente la forma de cargar imágenes en HTML es mediante el elemento img al cual pasamos como parámetro la URL de la imagen a cargar. Pero desde HTML5 disponemos del elemento picture que nos ayuda a eficientar y cargar imágenes por resolución con HTML5. Es decir, dependiendo de la resolución a la que tengamos la pantalla se mostrará una imagen u otra, lógicamente adaptada a la resolución que esté la pantalla en ese momento. De esta manera podemos construir mejores aplicaciones responsive.

Pero pasemos a definir el problema. La idea es que el usuario puede cargar nuestra página en diferentes dispositivos, ya sea un móvil, una tablet o un ordenador. En cada uno el tamaños de dispositivos la página se verá de forma diferente. Y lo que nos interesa es en cada tamaño cargar una imagen adaptada a dicho tamaño.

Si utilizamos el elemento img tendremos lo siguiente:

<img src="imagen.png" alt="imagen general"/>

En el caso de que utilicemos el elemento img se cargará siempre la misma imagen independientemente del tamaño de la pantalla.

Es por eso que recurrimos al elemento picture el cual tiene la siguiente estructura.

<picture>
 <source srcset="imagen" media="media-query">
 <source srcset="imagen" media="media-query">
 <source srcset="imagen" media="media-query">
 ...
 <img src="image-fallback" alt="Imagen si no funciona picture">
</picture>

Lo que ya vemos es que en el elemento picture podemos indicar varios orígenes mediante el elemento source. Además si nos fijamos en el elemento source vemos que disponemos de dos atributos. Por un lado el atributo srcset en el cual pasamos la URL de la imagen que queremos mostrar y por otro lado tenemos un atributo media en el que podemos indicar una media query. En el caso de que la media query de un valor true será cuando se muestre la imagen indicada en el atributo srcset.

Y será esta media query con la que gestionaremos el tamaño del dispositivo. Las media query nos permiten acceder a datos de configuración del dispositivo como puede ser tamaño mínimo o máximo de la pantalla (min-width y max-width, min-height y max-height), la resolución (resolution), el número de colores que se utilizan (color-index),…

En nuestro vamos a utilizar la propiedad min-width que nos dará el tamaño mínimo de la pantalla. La utilizaremos de la siguiente forma:

(min-width: size px)

Donde el tamaño será el tamaño en pixels de la pantalla. Vamos a controlar varios tamaños.

  • 48opx, para móviles.
  • 768px, para tablets.
  • 992px, para pc.
  • 1280px, para pc con pantalla grande.

De esta forma los media query nos quedaría de la siguiente forma:

min-width: 1280px;
min-width: 992px;
min-width: 768px;
min-width: 480px;

Si lo aplicamos al código de nuestro elemento picture tendremos el siguiente resultado:

<picture>        
  <source srcset="imagen1280.png" media="(min-width: 1280px)">
  <source srcset="imagen992.png" media="(min-width: 992px)">
  <source srcset="imagen768.png" media="(min-width: 768px)">
</picture>

Si nos fijamos vemos que hemos creado una imagen optimizada para cada resolución. Pero que no hemos creado una para la mínima de 480px y es que en este caso lo que vamos a hacer es insertar un elemento img que será el que se cargue en todos los casos y además nos sirve para proteger la visualización si nuestro navegador no soporta los elementos HTML5.

El código final nos quedaría de la siguiente forma.

<picture>        
  <source srcset="imagen1280.png" media="(min-width: 1280px)">
  <source srcset="imagen992.png" media="(min-width: 992px)">
  <source srcset="imagen768.png" media="(min-width: 768px)">
  <img src="imagen480.png" alt="MDN">
</picture>

Si cargamos la página vemos como mediante el comportamiento responsive implementado el código, van cambiando las imágenes. Permitiendo tener una web más optimizada que nos permita cargar imágenes por resolución con HTML5.

 

 

Código Fuente

Descárgate el código fuente de Cargar imágenes por resolución con HTML5
Y si te ha gustado nuestro código fuente puedes regalarnos una estrella Star

Vídeos sobre HTML5

Disfruta también de nuestros artículos sobre HTML5 en formato vídeo. Aprovecha y suscribete a nuestro canal.

Test HTML5

¿Te atreves a probar tus habilidades y conocimiento en HTML5 con nuestro test?

Test HTML5
Suscribir
Notificar de
guest
1 Comentario
Recientes
Anteriores Más votados
Opiniones integradas
Ver todos los comentarios