Googlemapをレスポンシブにしたい

yasuko
フワちゃんにあこがれています

グーグルマップを埋め込んだ時にレスポンシブにならない。

そろそろ自主的にレスポンスしてほしいと願っております。

Googlemapの埋め込みをしてみる

Googleさんからいただいた埋め込みタグの外をdivで囲みます。

<div class="map-wrap">
  <iframe src="https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d14869.201315653547!2d-157.8606024720086!3d21.299146058182046!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x0%3A0x6a04e2cf6c7b42d!2z44Kr44Oh44OP44Oh44OP5aSn546L5YOP!5e0!3m2!1sja!2sjp!4v1595908450997!5m2!1sja!2sjp" width="600" height="450" frameborder="0" style="border:0;" allowfullscreen="" aria-hidden="false" tabindex="0"></iframe>
</div>

囲んだdivごとレスポンシブにします。

.map-wrap {
  max-width: 100%;
  width: 100%;
  height: 0;
  overflow: hidden;
  padding-bottom: 75%; //地図の高さ
  position: relative;
}
.map-wrap iframe {
  position: absolute;
  left: 0;
  top: 0;
  height: 100%;
  width: 100%;
}

Googlemapの高さは height ではなく padding-bottom で指定します。

pxで指定してもいいけれど、%で指定することで縦横比を維持したままサイズが変えられます。

縦横比が4:3の場合は

3/4*100=75

縦横比が16:9の場合は

9/16*100=56.25

デザインに応じた縦横比を指定することができます。

アレンジレシピ

iframeを使った埋め込みコードに応用もできます。

Youtube とか・・・