how to make leaflet map height variable

前端 未结 4 1433
旧巷少年郎
旧巷少年郎 2021-02-03 20:05

In my Application I was making div of map as

but to make my map responsi

相关标签:
4条回答
  • 2021-02-03 20:17

    You have to set the div size with JavaScript.

    $("#map").height($(window).height()).width($(window).width());
    map.invalidateSize();
    

    You can find a complete example here.

    0 讨论(0)
  • 2021-02-03 20:26

    You need to set the parent elements to height: 100%; first

    html, body {
       height: 100%;
    }
    

    Demo

    Demo (This won't work as no parent height is defined)

    Explanation: Why do you need to do that? So when you specify an element's height in % then the 1st question that arises is: 100% of what? By default, a div has height of 0px, so 100% for a div simply won't work, but setting the parent elements height to 100%; will work.

    0 讨论(0)
  • 2021-02-03 20:27

    Use height="100vh" works in newer browser. but its ok.

    0 讨论(0)
  • 2021-02-03 20:40

    Put a position: relative wrapper parent around it, then position your map absolutely to fill that parent:

    .map-wrapper {
      position: relative;
    }
    
    #map {
      position: absolute;
      top: 0;
      right: 0;
      bottom: 0;
      left: 0;
    }
    
    <div class="map-wrapper">
      <div id="map"></div>
    </div>
    

    If #map already has a parent that you can position relatively, just use that; you won't need the .map-wrapper element.

    Leaflet Quick Start Guide could be clearer on this point as it's a common use case. The mobile tutorial hints at it.

    0 讨论(0)
提交回复
热议问题