Ответ 1
Высота причины: 100% не работает, потому что высота% не работает для детей, у родителей которых нет явной (не%) высоты. Так что это не работает:
parent {
height: 60%;
}
child {
height: 100%;
}
в то время как это делает:
parent {
height: 60em;
}
child {
height: 100%;
}
Ребенок не знает, что означает 60%, поэтому вместо него он становится высотой: auto (высота определяется статическим содержимым внутри него).
Ребенок знает, как определить% от 60em или любой другой явной единицы.
Есть некоторые исключения из этого правила. Один из них, когда и html, и элементы тела заданы высотой: 100%, вы можете использовать высоту: 100% или минимальную высоту: 100% для прямого ребенка. (Вы можете попробовать высоту: 96%, как предположил Пэт, но знаете, что это будут совершенно разные значения для экрана/высоты браузера. При неожиданных размерах вы можете потерять контент.)
Если я неправильно читаю HTML, похоже, что у вас есть два прямых дочерних элемента: iframe и # container-frame.
Вы можете попробовать абсолютно позиционировать # контейнер-фрейм в верхней части окна просмотра (чтобы он мог сидеть над остальной частью страницы, а под "выше" я имел в виду "ближе к пользователю по оси z" ) и если iframe не установлен на 100% выше, но, возможно, как пример Pat, 96% или что-то в этом роде, тогда вы могли бы дать iframe некоторое верхнее дополнение, чтобы сделать визуальную комнату для # контейнера-кадра. Если вы этого не сделаете, верхняя часть iframe будет закрыта # контейнером-рамкой, и люди потеряют верх. Знайте, что вы не можете добавлять верхние или нижние поля, отступы, границы и т.д. В коробку высотой 100%. Это даст вам что-то более 100%!
Другое исключение из правила% height - это абсолютно позиционированные элементы в целом. Они могут иметь и% высоты, за исключением того, что IE6 имеет проблемы с этим. Таким образом, возможно позитивное позиционирование обоих прямых детей может работать, если вы не против взлома IE6 или не заботитесь о IE6. Как правило, мне не нравится позиционировать все на странице, но это может быть проще всего в таком случае.