Хотя я согласен, что JS кажется лучшим вариантом, у меня есть несколько работающее решение только для CSS. Недостатком является то, что если вам часто приходится добавлять контент в ваш HTML-документ iframe, вам придется адаптировать один процентный период времени.
Решение:
Попробуйте без указания любой высоты ОБА для ваших HTML-документов,
html, body, section, main-div {}
, тогда только код это:
#main-div {height:100%;}
#iframe {height:300%;}
примечание: div должен быть вашим основным разделом.
Это должно работать относительно. iframe точно рассчитывает 300% высоты видимого окна. Если html-контент из 2-го документа (в iframe) меньше по высоте, чем в 3 раза больше высоты браузера, это работает. Если вам не нужно часто добавлять контент в этот документ, это постоянное решение, и вы можете просто найти свой собственный необходимый% в зависимости от высоты вашего контента.
Это работает, потому что предотвращает наследование 2-го html-документа (который встраивается) в его высоту от родительского html-документа. Это предотвращает это, потому что мы не указали высоту для них обоих. Когда мы даем% дочернему элементу, он ищет своего родителя, если нет, он принимает высоту содержимого. И только если другие контейнеры не имеют высоты, из того, что я пробовал.