Here are two things to consider:
When you create a flex container, only children become flexible. Any descendants outside of children are not flexible elements, and the properties of flexibility do not apply to them.
Your iframe not a flexible element because it is a child of the div class="row content" , which is a flexible element but not a flexible container. Therefore, flexibility properties are not applied, and there is no reason to stretch an iframe .
To apply flex properties to children of flexible elements, you need to make the flexible element also a flexible container. Try the following:
.box .row.content { flex: 1 1 auto; display: flex; }
When configured above the parent, the iframe becomes a (nested) flexible container, the iframe becomes an element of flexibility, and the default flex settings (including align-items: stretch ) take effect. iframe should now occupy the entire height of the container.
source share