Responzívnosť vloženej mapy
Cieľ
Chcem aby vložený prvok Google mapy využil plnú šírku miesta kde je vložený. V „iframe“ viem síce nastaviť šírku a výšku, no žiaľ neviem aká bude šírka miesta na rôznych zobrazovacích zariadeniach (mobil, 4k monitor). Chcem teda vytvoriť responzívnu vloženú mapu.
Riešenie
V štýloch si vytvorím dva nové prvky:
.google-maps {
position: relative;
padding-bottom: 75%;
height: 0;
overflow: hidden;
}
.google-maps iframe{
position: absolute;
top: 0;
left: 0;
width: 100% !important;
height: 100% !important;
}
Potom môžem vkladanú mapu, respektíve „iframe“ pomocou ktorého vkladám Google mapu vložiť do toho novovytvoreného elementu:
<div class="google-maps">
<iframe src="https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d1987.262020121058!2d21.90540110850619!3d48.94259420731785!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x473eb574cbf83289%3A0xcc162ac3a49bfc2c!2zUG9kIMWgaW51!5e1!3m2!1ssk!2ssk!4v1577257748391!5m2!1ssk!2ssk" width="200" height="150" frameborder="0" style="border:0;" allowfullscreen="" crossorigin="anonymous" allow="cross-origin-isolated"></iframe>
</div>
Ukážka
Mapa vložená len pomocou „iframu“:
Mapa vložená pomocou toho istého „iframu“ ale už aj pomocou novovytvoreného prvku .google-maps
: