He estado tratando de cambiar la altura de mi mapa de folleto a un porcentaje dentro de bootstrap, pero cada vez que hago el mapa no se dibuja. Por lo tanto, siempre tengo que volver al valor px. Estoy bastante seguro de que es una configuración simple que me falta, ya que soy un novato en CSS. Aquí está mi css.
<style type="text/css">
body {
padding-top: 60px;
padding-bottom: 40px;
}
#map {
height: 75%;
}
</style>
web-mapping
leaflet
bootstrap-framework
njackson.gis
fuente
fuente
Respuestas:
Siempre he tenido problemas con la altura del mapa en bootstrap ya que el margen en la parte superior puede ser diferente cuando el ancho del mapa cambia para obtener una altura del 100% (pero con una barra de navegación en la parte superior) Termino usando
lo cual es feo pero hace el trabajo.
fuente
[ACTUALIZACIÓN 2020]
A partir del 23/02/2020, Flexbox tiene un 95% de compatibilidad con el navegador y es una excelente opción para hacer que Leaflet responda utilizando la propiedad flex-grow.
Vea una demostración de CodePen aquí
Está configurado para que todavía se muestre en navegadores que no admiten Flexbox, solo aquellos usuarios tendrán que desplazarse un poco
¯ \ _ (ツ) _ / ¯
================================================== ==========
[ANTIGUA PUBLICACIÓN]
Esto funcionó para mí.
Nota: quería que mi mapa no tuviera un ancho del 100% en pantallas grandes, así que agregué
fuente
El problema es
#map
secundariobody
y solo puede especificar alturas porcentuales para elementos secundarios si su principal tiene una altura definida explícitamente.Esto crearía lo que desea, pero el área utilizable nunca crecería más que el 75% de 480px. Normalmente, un
div
colapso cuando no hay un contenido, pero con Leaflet, aunque su mapa está en eldiv
no se calcula en el render, por lo tanto, se contrae en el render. Si desea que el contenido ocupe todo el espacio vertical, puede consultar el tamaño de la ventana al cargar la página con algunos JavaScript y establecer la altura de esa manera.fuente
Simplemente agregue una
height:100%
a las etiquetashtml
ybody
para que tengan una altura definida y puedan usarse como referencia y debería funcionar.Referencias
Esta pregunta relacionada de Stackoverflow: Porcentaje Altura HTML 5 / CSS
También puede echar un vistazo al estándar W3C CSS 2.1 para ver el modelo de caja y la parte sobre la computación de alturas y márgenes
fuente
¡Advertencia! Después de las pruebas entre navegadores, descubrí que mi respuesta a continuación solo funcionó para mí en Chrome y no en Firefox
Tuve el mismo problema y solucioné esto con display: table en el div principal y display table-cell en cada div gracias a esta respuesta en stackoverflow :
Y el css:
fuente