Я пытаюсь установить div для определенной процентной высоты в CSS
Процент чего?
Чтобы установить процентную высоту, его родительский элемент (*) должен иметь явную высоту. Это довольно очевидно, так как если вы оставите высоту как auto
, блок получит высоту своего содержимого ... но если у самого содержимого есть высота, выраженная в процентах от родительского элемента, который вы сделали немного подвоха 22. Браузер сдается и просто использует высоту контента.
Таким образом, родительский элемент div должен иметь явное свойство height
. Хотя эта высота также может быть в процентах, если вы хотите, это просто перемещает проблему на следующий уровень.
Если вы хотите сделать высоту div в процентах от высоты области просмотра, каждый предок div, включая <html>
и <body>
, должен иметь height: 100%
, так что есть цепочка явных процентных высот вниз до див.
(*: или, если div расположен, «содержащий блок», который также является ближайшим предком, который должен быть расположен.)
В качестве альтернативы, все современные браузеры и IE> = 9 поддерживают новые CSS-единицы относительно высоты области просмотра (vh
) и ширины области просмотра (vw
):
div {
height:100vh;
}
Смотрите здесь для подробнее .