I have a fixed height container containing both images and iframes. To make the images responsive and preventing both vertical and horizontal overflow I can just set the following CSS:
img { max-width: 100%; max-height: 100%; }
This ensures that a portrait image would not overflow vertically and a landscape image would not overflow horizontally.
For iframes, I’m using the “padding-ratio” technique, setting the padding of the wrapper element to the aspect ratio of the iframe (e.g. 56.25% for a 16:9 video):
.iframe-wrapper { position: relative; height: 0; padding-top: 56.25%; overflow: hidden; } .iframe-wrapper iframe { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
While this means that the iframe scales with the width of the viewport it does not work the same if I change the height of the viewport. Essentially I’d like the iframe to mimic how the images work.