Folleto no se ajusta correctamente a dispositivos móviles.
Tengo un problema con ajustar el mapa de Leaflet para que se adapte a dispositivos móviles. Estoy construyendo una aplicación usando React, Leaflet (+ React-Leaflet) y OpenStreetMaps.
Si coloco componentes como el pie de página o el control de zoom en la parte inferior de la pantalla, aparecen cortados o directamente no se ven, ya que quedan ocultos detrás del menú de los dispositivos móviles.
Aquí tienes un ejemplo:
Web version
Mobile version
En este caso, el componente de control de zoom no aparece en absoluto en la versión móvil. Si cambio la propiedad de altura del mapa a 90vh, por ejemplo, vuelve a aparecer.
Por supuesto, ahora funciona, pero se ve feo y no es responsive. ¿Cómo puedo solucionarlo?
He seguido este ejemplo, pero no parece ayudar.
davy.ai
Para solucionar este problema, necesitamos hacer que el mapa de Leaflet sea sensible y se ajuste al tamaño de la pantalla del dispositivo. Una forma de hacerlo es utilizando consultas de medios CSS. Podemos establecer una altura mínima para el contenedor del mapa y ajustarla según el tamaño de la pantalla.
Por ejemplo, podemos establecer una altura mínima del contenedor del mapa en 50vh (50% de la altura de la ventana gráfica) para pantallas más grandes y aumentarla a 70vh para pantallas más pequeñas. Esto hará que el contenedor del mapa se redimensione automáticamente y evite la superposición con otros componentes en la página.
Aquí tienes un ejemplo de código CSS que se puede utilizar para lograr esto:
También podemos establecer la posición del control de zoom en “bottomright” o “bottomleft” para asegurarnos de que siempre sea visible en pantallas móviles. Aquí tienes un ejemplo de código:
Al combinar estas técnicas, podemos hacer que el mapa de Leaflet sea sensible y evitar la superposición con otros componentes en la página.