Googleマップをレスポンシブに埋め込む方法

会社概要やアクセスページで Google マップを埋め込むとき、画面サイズに合わせて縦横比を維持したい場合があります。
以下の方法を使うと、PC・スマホどちらでも崩れずに表示できます。

1 サンプルHTML


<div class="google-maps">
    <iframe 
        src="https://www.google.com/maps/embed?pb=!1m18!..." 
        width="600" 
        height="450" 
        style="border:0;" 
        allowfullscreen="" 
        loading="lazy">
    </iframe>
</div>

2 基本のCSS


/* -----------------------------
 * google-maps
----------------------------- */

/* ラッパーの設定 */
.google-maps {
    position: relative;    /* 子要素(iframe)を絶対位置で配置するための基準にする */
    margin: 40px 0;        /* 上下に40pxの余白を作り、周囲の要素とスペースを確保 */
    padding-bottom: 75%;   /* 高さの比率を設定。16:9なら56.25%、ここは好みや用途に応じて変更可能 */
    height: 0;             /* 実際の高さはpadding-bottomで作るので0に設定 */
    overflow: hidden;      /* iframeがラッパーからはみ出さないようにする */
}

/* iframe(マップ本体)の設定 */
.google-maps iframe {
    position: absolute;       /* ラッパー内で絶対位置に配置して重ねる */
    top: 0;                   /* 上端をラッパーの上端に合わせる */
    left: 0;                  /* 左端をラッパーの左端に合わせる */
    width: 100% !important;   /* ラッパー幅いっぱいに広げる。importantで上書きされる場合も対応 */
    height: 100% !important;  /* ラッパー高さに合わせてiframeも伸縮させる */
}

3 縦横比の調整方法

ラッパー .google-mapspadding-bottom の値を変更すると、マップの高さ比率を自由に変えられます。

  • 16:9(標準ワイド画面): padding-bottom: 56.25%;
  • 4:3(やや縦長): padding-bottom: 75%;
  • 1:1(正方形): padding-bottom: 100%;

このように比率を調整すると、スマホやタブレットでもマップの縦横比が崩れず、見やすい表示になります。

4 完成イメージ

5 まとめ

Google マップを埋め込む際は、ラッパーを作って padding-bottom で高さを調整し、iframe を絶対位置で配置することで、レスポンシブ対応が簡単にできます。
比率を変えるだけで、用途に応じた表示サイズに変更可能です。