J'ai essayé de changer la hauteur de ma carte de dépliant en un pourcentage à l'intérieur du bootstrap mais à chaque fois que je fais la carte ne dessine pas. Ainsi, je dois toujours revenir à la valeur px. Je suis sûr que c'est un paramètre simple qui me manque depuis que je suis un novice CSS. Voici mon css.
<style type="text/css">
body {
padding-top: 60px;
padding-bottom: 40px;
}
#map {
height: 75%;
}
</style>
web-mapping
leaflet
bootstrap-framework
njackson.gis
la source
la source
Réponses:
J'ai toujours eu des problèmes avec la hauteur de la carte dans le bootstrap car la marge en haut peut être différente lorsque la largeur de la carte change pour obtenir 100% de hauteur (mais avec une barre de navigation en haut) je finis par utiliser
ce qui est moche mais fait le travail.
la source
[MISE À JOUR 2020]
Depuis le 23/02/2020, Flexbox prend en charge 95% des navigateurs et est une excellente option pour rendre Leaflet réactif à l'aide de la propriété flex-grow.
Voir une démo CodePen ici
Il est configuré de manière à ce qu'il s'affiche toujours sur les navigateurs qui ne prennent pas en charge Flexbox, seuls les utilisateurs devront faire défiler abit
¯ \ _ (ツ) _ / ¯
================================================== ==========
[ANCIEN POST]
Cela a fonctionné pour moi.
Remarque: je voulais que ma carte ne soit pas à 100% sur de grands écrans, j'ai donc ajouté
la source
Le problème est
#map
un enfant debody
et vous ne pouvez spécifier des hauteurs en pourcentage pour les éléments enfants que si son parent a une hauteur explicitement définie.Cela créerait ce que vous désirez, mais la surface utilisable ne grossirait jamais plus de 75% de 480px. Normalement, un
div
effondrement lorsqu'il n'y a pas de contenu, mais avec Leaflet, même si votre carte est dans lediv
il n'est pas calculé au rendu, donc réduit au rendu. Si vous voulez que le contenu occupe tout l'espace vertical, vous pouvez interroger la taille de la fenêtre au chargement de la page avec du javascript et définir la hauteur de cette façon.la source
Ajoutez simplement un
height:100%
aux baliseshtml
etbody
afin qu'ils aient une hauteur définie et puissent être utilisés comme référence et cela devrait fonctionner.Références:
Cette question connexe de Stackoverflow: hauteur en pourcentage HTML 5 / CSS
Vous pouvez également jeter un œil à la norme W3C CSS 2.1 pour voir le modèle de boîte et la partie sur le calcul des hauteurs et des marges
la source
Attention! Après des tests croisés, j'ai découvert que ma réponse ci-dessous ne fonctionnait que pour moi dans Chrome et non dans Firefox
J'ai eu le même problème et corrigé cela avec display: table sur un div principal et afficher la cellule du tableau sur chaque div grâce à cette réponse sur stackoverflow :
Et le css:
la source