Google地图 - 填充剩余高度



我正在从事地图应用程序上,我希望Google Maps Div填充标头下方的剩余高度。下面的代码。

  <!DOCTYPE html>
  <head>
    <title>Map Application</title>
    <style type="text/css">
    html {
        height: 100%;
    }
    body {
        height: 100%;
        margin: 0;
        padding: 0;
    }
    #map_canvas {
        margin: 0;
        padding: 0;
        height: 95%;
        width: 100%;
    }
    @media (max-width: 767px) {
        #start_lat, #start_lng, #dest_lat{
          margin-bottom: 0.5em;
      }
  }
</style>
<!-- Bootstrap -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta.2/css/bootstrap.min.css" integrity="sha384-PsH8R72JQ3SOdhVi3uxftmaW6Vc51MKb0q5P2rRUpPvrszuE4W1povHYgTpBfshb" crossorigin="anonymous">
<!-- Fontawesome -->
<script src="https://use.fontawesome.com/2eede759bf.js"></script>
<script type="text/javascript">
  var map;
  var markers = [];
  var path;
  var bounds;
  function initialize() {
    var mapOptions = {
      center: new google.maps.LatLng(-25.363, 131.044),
      zoom: 15,
      mapTypeId: google.maps.MapTypeId.ROADMAP
  };
  map = new google.maps.Map(document.getElementById("map_canvas"), mapOptions);
}
</script>
</head>
<body>
    <nav class="navbar navbar-expand-lg navbar-light bg-light">
      <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
          <span class="navbar-toggler-icon"></span>
      </button>
      <div class="collapse navbar-collapse" id="navbarSupportedContent">
        <form class="form-inline my-2 my-lg-0 mx-auto" id="map-data" action="" method="POST" align="center">
          <!-- Here goes a form with a few input fields and buttons. -->
        </form>
    </div>
</nav>
<div id="map_canvas"></div>
<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?key={{ GMAPS_API_KEY }}&callback=initialize"></script>
<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.3/umd/popper.min.js" integrity="sha384-vFJXuSJphROIrBnz7yo7oB41mKfc8JzQZiCq4NCceLEaO4IHwicKwpJf9c9IpFgh" crossorigin="anonymous"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta.2/js/bootstrap.min.js" integrity="sha384-alpBpkh1PFOepccYVYDB4do5UnbKysX5WZXm3XxPqe5iKTfUKjNkCk9SaVuEZflJ" crossorigin="anonymous"></script>
</body>
</html>

我已经尝试了绝对定位,但是Google地图似乎覆盖了相对定位,请告知

谢谢。

您可以给<nav>一个固定高度,然后使用calc()计算#map_canvas的高度:

.navbar {
    height:150px;
}
#map_canvas {
    height:calc(100vh - 150px);
}

否则您可以使用Flexbox:

body {
    display:flex;
    flex-direction:column;
    min-height:100vh;
}
.navbar {
    flex-grow:0;
}
#map_canvas {
    flex-grow:1;
}

尝试以下:

#map_canvas {
position: absolute;
top: 0px;
}

尝试给出位置绝对和顶部:#MAP_CANVAS的0PX。这应该做。

最新更新