Imágenes responsivas con srcset y picture para mejor rendimiento
Clase 13 de 17 • Curso de HTML
Contenido del curso
Clase 13 de 17 • Curso de HTML
Contenido del curso
Josue Israel Rojas Vilca
Carlos Rubén Díaz Gutiérrez
Lizeth Farfán
Jessica Coanqui
José Francisco Renteria Montoya
Jesús Ynuma
iecgerman .
Edil Guardado
Miguel Ángel Juárez Guerrero
Santiago Heredia
Jesús Ynuma
Ismael Fierro
MARIA Ortega Herrera
Christiam Gabriel Silva Parra
Jose Daniel Galicia Avila
Manuel Andres Blanco Clavijo
Aura Bello
Leonardo Claro
Jamer David Rebolledo Quiroz
Edicson Morcillo
Isabel Cristina Ruiz
Adiel gilberto Ramos Parrado
Natan Mamani Flores
Lair Dione Ortiz Bernal
Lair Dione Ortiz Bernal
JUAN CARLOS GARCIA IBARRA
Manuel Enrique Correa Chavez
Juan Barrios
Juan Pablo Echavarria
Me parece los conceptos no están explicados del todo claro, dudo que un entorno real de trabajo se usen estas propiedades, por que en CSS esto se resuelve en 3 líneas de código, espero que en el curso de CSS qur tambien lo enseña el mismo profesor aclare un poco mejor; el concepto de mobile first hay que explicarlo mejor.
Las dificultades generales que se dan hay hacer esto son las imágenes desbordadas, el como se ve en diferentes dispositivos, y el uso de la etiqueta meta viewport en el head
Claro, se explica de esta forma porque este es el curso de HTML y únicamente se ve HTML, por lo que no se va a hablar de CSS aún. Es por eso mismo que el curso de CSS está enseguida en la ruta.
para que funcione y cambie en las diferentes resoluciones se debe dejasr así:
</html>
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Imagenbes responsive</title> </head> <body> <picture> <source media="(min-width: 901px)" srcset="./IMG/hero-1200.jpg"> <source media="(min-width: 601px)" srcset="./IMG/hero-800.jpg"> <img src="./IMG/hero-400.jpg" alt="Vista panorámica" style="max-width:100%;height:auto;"> </picture> </body> </html>
Así si funciona 😎
Gracias
Excelente aporte, con el código del video no cambiaban de tamaño y con tu código si lo hacen.
Compañeros, si les frustra que el autocompletado de imágenes no funciona consistentemente, la solución es simple:
La extensión Path IntelliSense (de Christian Kohler) corrige este problema.
Pasos:
Path IntelliSense.aaaa yo usaba ese hace tiempo, muy bueno y te autocompleta muchas cosas que ya has repetido.
Gracias Jesus. Ya me funciona con esta extension
Si tienen dudas al respecto con cualquier tema que el profesor explica en sus clases, no se queden con ellas y apóyense de alguna IA, en mi caso me gusta usar Gemini para que me ayude a aclarar dudas puntuales y me parece un complemento perfecto para que todo quede bien claro:
Pero no deberíamos necesitar. Es decir, en algunas cosas es normal usar IA pero este tipo NO explicó bien esta clase.
¡Hola compañeros!
Para los que tengan problemas con la carga de las imágenes responsivas usando srcset, o que solo les estén cargando dos archivos (como la de 400w y luego salta directo a la de 1200w, sin cargar la de 800w) a pesar de que el código esté bien, la solución es la siguiente:
Me apoyé en Gemini y descubrimos que era un problema de caché del navegador que impedía probar correctamente el cambio de imágenes.
Pasos para forzar la carga correcta:
¡Con eso, el navegador dejará de usar versiones antiguas y cargará el archivo de imagen correcto cuando redimensionen la ventana!
Excelente! Toma tu Like, Jejeje.
Ya estaba viendo que sucedia, si era la ruta o si una coma, etc etc.
GRAAACIASSSS ESTUVE SUFRIENDO MUCHISIMO
Esta clase en particular la veo un poco de relleno ya que realmente la adaptacion responsiva de contenido tanto multimedia como web realmente se manipula es en CSS estos comandos que muenstran aqui practicamente NUNCA los vamos a usar
saludos
¿Cuándo debería usar picture sobre srcset?
Debes elegir la etiqueta <picture> cuando necesites aplicar dirección de arte, es decir, cuando no solo buscas cambiar la resolución, sino mostrar un encuadre o proporción completamente diferente según el dispositivo. Mientras que srcset es ideal para que el navegador elija la versión más ligera de una misma fotografía basándose en la pantalla, <picture> te da el control absoluto para forzar, por ejemplo, un banner horizontal en escritorio y una imagen cuadrada en móviles. En resumen, usa <picture> para cambios visuales drásticos y srcset para optimizar el rendimiento de una imagen idéntica.
En mi caso nunca cargo la imagen hero-400.jpg, menor a 400w siempre carga la imagen hero-800.jpg... :( :(
Tuve el mismo problema
Lo entiendo de la siguiente manera:
Existen 2 formas de hacer que el navegador escoja imágenes con base en el tamaño de la pantalla del dispositivo. Una con <img> y otra con <picture>
<img src="{Ruta de la imagen}" alt="{Descripción}"
srcset="
{Ruta de la imagen} 400w,
{Ruta de la imagen} 800w,
{Ruta de la imagen} 1200w
">
Aquí, lo que estoy haciendo es decirle al navegador el ancho que tienen las imágenes. Con base en esto y al tamaño de la pantalla, el navegador escoje la mejor opción.
Luego, con el atributo sizes
sizes="(max-width:600px) 100vw, 50vw"
Lo que hago es:
<picture> y la subetiqueta <source>En este caso, el navegador estará activamente cambiando entre imágenes de acuerdo al ancho del viewport.
<picture> <source media="{Tamaño de la pantalla en la que quiero que se use la imagen que voy a colocar a continuación en srcset}" srcet="{Ruta de la imagen}"> </picture>
Ejemplo aplicado:
<picture> <source media="(min-width: 768px)" srcet="IMG/Banner-desktop-800x400"> </picture>
Esto le dice al navegador que para tamaños de pantall de, como mínimo, 768px, use la imagen en la ruta IMG/Banner-desktop-800x400.
Al final de la clase el profe dio unos atributos adicionales: loading y decoding.
Pero Diego, en el minuto 18:50, no faltó especificar después de IMG/producto-300.jpg agregarle 300w?
a mí no me funcionó como lo hicieron en clase
Esta es la clase que me ha parecido más enredada de todas hasta ahora
si estamos trabajando con css ¿tendria sentido todo esto?
La verdad, me gustó mucho la clase porque explica algo que a veces parece complicado de una forma bien clara. Antes veía "srcset" y "sizes" y no entendía bien cómo usarlos, pero aquí se entiende mejor para qué sirven en la práctica. También está bueno que mencione lo de "lazy loading" y "decoding", porque eso sí ayuda bastante a que la página cargue más rápido. En general, se siente como una guía útil de verdad, no solo teoría.
Hero, imagen principal al entrar a la página web.
Banner, imagen horizontal que se usa para comunicar algo específico (no siempre ocupa la pantalla).
Soy nueva en esto, pero sospecho que las imágenes que se cargan VS Code se debe hacerlo de una manera específica. Tal vez hubiera ayudado mucho si el profe explicara la antesala; por otro lado intenté resolver la carga de las imágenes, escribiendo el código tal cual, siguiendo recomendaciones de los comentarios y aún así en esta clase me siento perdida. Continuaré y retomaré después.
en que momento debemos usar esas etiquetas o cada una si cada metodo se puede ocupar para lomismo o casi?
Creo que sería bueno indicar, que en estos casos también va a influir el tipo de pantalla que tengas, ya que tuve problemas con el cambio de imagen y buscando vi que era causado por la densidad de pixeles de mi pantalla.
No sé a quien le pueda servir, pero la w de ancho va en minúscula :p Tuve ese error por 10 minutos
No me cargó es nada.