I'm using bootstrap and I embedded Google Maps API 3.
#map_canvas
isn't responsive; it's a fixed width.
Also, if I use height: auto
and width: auto
the map doesn't show up in the page.
Why?
<style type="text/css"> body { padding-top: 60px; padding-bottom: 40px; } #map_canvas { height: 400px; width: auto; } </style> <div class="container"> <div class="row"> <div class="span6"> <div id="map_canvas"></div> </div> </div> </div>
Bootstrap includes a responsive, mobile first fluid grid system that appropriately scales up to 12 columns as the device or viewport size increases. It includes predefined classes for easy layout options, as well as powerful mixins for generating more semantic layouts.
REVISED: The Official Post is outdated, so I've updated my answer and improved the code.
The following method does not require bootstrap or any other framework. It can be used independently to make any content responsive. To the parent element is applied a padding by calculating the aspect ratio
. Then the child element is placed on top using absolute position.
The HTML:
<div class="iframe-container"> <!-- embed code here --> </div>
The CSS:
.iframe-container{ position: relative; width: 100%; padding-bottom: 56.25%; /* Ratio 16:9 ( 100%/16*9 = 56.25% ) */ } .iframe-container > *{ display: block; position: absolute; top: 0; right: 0; bottom: 0; left: 0; margin: 0; padding: 0; height: 100%; width: 100%; }
The following 'fiddle' has examples on how to make:
This uses Bootstrap's Responsive Embed feature with fixed aspect ratio of 16/9:
<div class="embed-responsive embed-responsive-16by9"> <div id="map_canvas" class="embed-responsive-item" style="border: 1px solid black"></div> </div>
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With