Я пытаюсь установить <div>
определенный процент высоты в CSS, но он остается того же размера, что и содержимое внутри него. Однако когда я удаляю HTML 5 <!DOCTYTPE html>
, он работает, <div>
занимая всю страницу по желанию. Я хочу, чтобы страница прошла проверку, что мне делать?
У меня есть этот CSS на <div>
, который имеет идентификатор page
:
#page {
padding: 10px;
background-color: white;
height: 90% !important;
}
height
свойства CSS с процентными значениями: stackoverflow.com/a/31728799/3597276Ответы:
Процент чего?
Чтобы установить процентную высоту, его родительский элемент (*) должен иметь явную высоту. Это довольно очевидно, потому что если вы оставите высоту как
auto
, блок будет принимать высоту своего содержимого ... но если у самого содержимого есть высота, выраженная в процентах от родительского, вы сделали себя немного Уловка 22. Браузер сдается и просто использует высоту контента.Таким образом, родительский элемент div должен иметь явное
height
свойство. Хотя эта высота также может быть в процентах, если вы хотите, это просто перемещает проблему на следующий уровень.Если вы хотите, чтобы высота div составляла процент от высоты области просмотра, каждый предок элемента div, включая
<html>
и<body>
, должен иметь егоheight: 100%
, поэтому существует цепочка явных процентных высот вплоть до div.(*: или, если div расположен, «содержащий блок», который также является ближайшим предком, который должен быть расположен.)
В качестве альтернативы, все современные браузеры и IE> = 9 поддерживают новые модули CSS относительно высоты области просмотра (
vh
) и ширины области просмотра (vw
):Смотрите здесь для получения дополнительной информации .
источник
Вы должны установить высоту на
<html>
и<body>
элементов , а также; в противном случае они будут достаточно большими, чтобы соответствовать содержанию. Например :источник
Ответ Бобинса даст вам знать, в каких случаях "высота: XX%;" будет или не будет работать.
Если вы хотите создать элемент с заданным соотношением (высота:% от его собственной ширины), лучший способ сделать это - эффективно установить высоту, используя
padding-bottom
. Пример для квадрата:Квадратный контейнер будет просто сделан из заполнения, и содержимое будет расширяться, чтобы заполнить контейнер. Длинная статья 2009 года на эту тему: http://alistapart.com/article/creating-intrinsic-ratios-for-video
источник
Вы можете использовать
100vw / 100vh
. CSS3 дает нам относительные единицы просмотра. 100vw означает 100% ширины области просмотра. 100vh; 100% высоты.источник
В другом случае, чтобы избавиться от этого определяющего родительского процента, вы можете использовать
Тело {высота: 100vh}
vh обозначает высоту окна просмотра
Я думаю это поможет
источник
Иногда может потребоваться условно установить высоту элемента div, например, когда весь контент меньше высоты экрана. Установка всех родительских элементов на 100% обрезает контент, когда он длиннее размера экрана.
Итак, способ обойти это - установить минимальную высоту:
Продолжайте позволять родительским элементам автоматически регулировать их высоту. Затем в основном элементе div вычтите размеры пикселов верхнего и нижнего колонтитулов div из 100vh (единицы просмотра). В css что-то вроде:
минимальная высота: calc (100vh - 246px);
100vh - это полная длина экрана, за вычетом окружающих элементов. Если установить минимальную высоту, а не высоту, содержимое будет длиннее экрана, а не будет обрезано.
источник