Не тестировалось, но вы можете попробовать. Обратите внимание, что это не удастся, если у вас нет фиксированной высоты верхнего и нижнего колонтитула. calc()
вычисляет высоту просмотра минус высота заголовка минус высота нижнего колонтитула.
<body>
<div id="page">
<header id="pageHeader">
</header>
<main id="pageMain">
<iframe src="..."></iframe>
</main>
<footer id="pageFooter">
</footer>
</div>
</body>
с этим css.
html, body {
height: 100%;
margin: 0;
}
header, footer, main {
display: block;
}
#page {
min-height: 100%;
}
#pageHeader {
height: 70px; /* or something else */
}
#pageFooter {
height: 90px; /* or something else */
}
#pageMain {
position: relative;
height: calc(100vh - 160px); /* 100vh minus (header + footer) */
}
#pageMain iframe {
position: absolute;
top: 0; left: 0; bottom: 0;
width: 100%;
border: 0;
}