Я пытался изменить высоту моей карты листовки в процентах внутри начальной загрузки, но каждый раз, когда я делаю это, карта не будет рисовать. Таким образом, мне всегда приходится возвращаться к значению px. Я уверен, что это простой параметр, который мне не хватает, так как я новичок в CSS. Вот мой css.
<style type="text/css">
body {
padding-top: 60px;
padding-bottom: 40px;
}
#map {
height: 75%;
}
</style>
web-mapping
leaflet
bootstrap-framework
njackson.gis
источник
источник
Ответы:
У меня всегда были проблемы с высотой карты в начальной загрузке, так как поле вверху может отличаться, когда ширина карты меняется на 100% высоты (но с панелью навигации вверху), в итоге я использую
что некрасиво, но делает работу.
источник
[ОБНОВЛЕНИЕ 2020]
По состоянию на 2020/02/23 Flexbox имеет 95% поддержку браузеров и является отличным вариантом для того, чтобы сделать Leaflet отзывчивым, используя свойство flex-grow.
Посмотреть демо CodePen здесь
Он настроен так, что он по-прежнему будет отображаться в браузерах, которые не поддерживают Flexbox, только те пользователи должны будут прокрутить abit
¯ \ _ (ツ) _ / ¯
================================================== ==========
[СТАРЫЙ ПОСТ]
Это сработало для меня.
Примечание: я хотел, чтобы на больших экранах моя карта не имела ширины 100%, поэтому я добавил
источник
Проблема в том, что он
#map
является дочерним,body
и вы можете указать процентную высоту для дочерних элементов только в том случае, если его родительский элемент имеет явно определенную высоту.Это создаст то, что вы хотите, но полезная площадь никогда не станет больше 75% от 480px. Обычно
div
коллапс происходит, когда нет контента, но с помощью Leaflet, даже если ваша карта вdiv
нем не рассчитывается при рендеринге, поэтому коллапс при рендеринге. Если вы хотите, чтобы содержимое занимало все вертикальное пространство, вы можете запросить размер окна при загрузке страницы с помощью некоторого JavaScript и таким образом установить высоту.источник
Просто добавьте
height:100%
кhtml
иbody
тегам , чтобы они имеют определенную высоту и могут быть использованы в качестве эталона , и он должен работать.Ссылки:
Этот связанный вопрос Stackoverflow: Процент высоты HTML 5 / CSS
Вы также можете взглянуть на стандарт W3C CSS 2.1, чтобы увидеть блочную модель и часть о вычислении высот и полей
источник
Предупреждение! После кросс-браузерного тестирования я обнаружил, что мой ответ ниже работает только для меня в Chrome, а не в Firefox
У меня была та же проблема, и я исправил ее с помощью display: table в главном div и отображения table-cell в каждом div благодаря этому ответу на stackoverflow :
И CSS
источник