Bootstrap 4 full width iframe inside a container

Overcoming the restrictions of semantic iframe placement.

For semantic purposes sometimes you want to nest a full width item (in this instance a google map iframe) inside a .container element.

Here's the map:

In order to make this full size you first need to remove the width and height properties from the url then you need to substitute some custom css. The modern way to do this is to use vh and vw. In order to make the iframe the same width as the viewer you have to set the width to 100vw. That alone won't work though as you have to move the whole lot left in order to make it appear centrally. To do that you can use calc() and position: relative;.

iframe {
    width: 100vw;
    height: 450px;
    position: relative;
    left: calc(-50vw + 50%);

The key here is the position of the left edge which is set to -50vw which sets it at the left hand edge of it's container, plus 50% of the parent element's width, or at the left hand side of the viewport. Here's the result:

Comments powered by Talkyard.