Я использовал display: table, чтобы исправить подобную проблему. Это почти работает для этого, оставляя небольшую вертикальную полосу прокрутки. Если вы пытаетесь заполнить этот гибкий столбец чем-то другим, кроме iframe, он работает нормально (не
Взять следующий HTML
<body>
<div class="outer">
<div class="banner">Banner</div>
<div class="iframe-container">
<iframe src="http: //www.google.com.tw" style="width:100%; height:100%;border:0;"></iframe>
</div>
</div>
</body>
Измените внешний div для использования display: table и убедитесь, что для него заданы ширина и высота.
.outer {
display: table;
height: 100%;
width: 100%;
}
Сделайте баннер строкой таблицы и установите его высоту в соответствии с вашими предпочтениями:
.banner {
display: table-row;
height: 30px;
background: #eee;
}
Добавьте дополнительный div вокруг вашего iframe (или любого другого необходимого вам контента) и сделайте его строкой таблицы с высотой, установленной на 100% (установка ее высоты критична, если вы хотите встроить iframe для заполнения высоты) *
.iframe-container {
display: table-row;
height: 100%;
}
Ниже показан jsfiddle, показывающий его на работе (без фрейма, потому что в скрипте это не работает)
https://jsfiddle.net/yufceynk/1/