Вот решение, которое я наконец-то придумал, когда использовал div в качестве контейнера для динамического фона.
- Удалить
z-index
для не фонового использования.
- Удалить
left
или right
для столбца полной высоты.
- Удалить
top
или bottom
для полной ширины строки.
РЕДАКТИРОВАТЬ 1: CSS ниже был отредактирован, потому что он не отображался правильно в FF и Chrome. переместился position:relative
в HTML и установил тело height:100%
вместо min-height:100%
.
РЕДАКТИРОВАТЬ 2: Добавлены дополнительные комментарии к CSS. Добавил еще несколько инструкций выше.
CSS:
html{
min-height:100%;/* make sure it is at least as tall as the viewport */
position:relative;
}
body{
height:100%; /* force the BODY element to match the height of the HTML element */
}
#cloud-container{
position:absolute;
top:0;
bottom:0;
left:0;
right:0;
overflow:hidden;
z-index:-1; /* Remove this line if it's not going to be a background! */
}
HTML:
<!doctype html>
<html>
<body>
<div id="cloud-container"></div>
</body>
</html>
Зачем?
html{min-height:100%;position:relative;}
Без этого облачный контейнер DIV удаляется из контекста макета HTML. position: relative
гарантирует, что DIV остается внутри блока HTML, когда он рисуется так, что bottom:0
ссылается на нижнюю часть блока HTML. Вы также можете использовать height:100%
облачный контейнер, так как он теперь ссылается на высоту тега HTML, а не на область просмотра.
html
элемента. Это почему?height
говорит «ты такой высокий; не больше и не меньше. Это означает, что это будет высота области просмотра. Мы хотим, чтобы он был по крайней мере таким же высоким, как окно просмотра или выше.min-height
делает это красиво.<html>
и позиционирование в окне просмотра - это две разные вещи. Спасибо!С HTML5 проще всего сделать
height: 100vh
. Где «vh» обозначает высоту окна просмотра окна браузера. Реагирует на изменение размеров браузера и мобильных устройств.источник
vw
.У меня была похожая проблема, и решение было сделать это:
Я хотел, чтобы страница-центрировал div с высотой 100% от высоты страницы, поэтому мое общее решение было:
Вам может понадобиться сделать родительский элемент (или просто «тело»)
position: relative;
источник
cloud-container
?Вы можете обмануть, используя Faux Columns Или вы можете использовать некоторые хитрости CSS
источник
Это просто с помощью таблицы:
Когда был представлен DIV, люди так боялись столов, что бедный DIV стал метафорическим молотом.
источник
Используйте абсолютную позицию. Обратите внимание, что это не то, как мы обычно используем абсолютную позицию, которая требует ручной раскладки или наличия плавающих диалогов. Это автоматически растянется при изменении размера окна или содержимого. Я считаю, что это требует режима стандартов, но будет работать в IE6 и выше.
Просто замените div на id 'thecontent' на ваш контент (указанная высота приведена только для иллюстрации, вам не нужно указывать высоту для реального контента).
Способ, которым это работает, заключается в том, что внешний div действует как контрольная точка для навигационной панели. Внешний div растягивается содержимым div «content». Панель навигации использует абсолютное позиционирование, чтобы растянуть себя до высоты своего родителя. Для горизонтального выравнивания мы делаем смещение содержимого div на ту же ширину панели навигации.
Это стало намного проще с моделью CSS3 flex box, но она пока недоступна в IE и имеет свои особенности.
источник
Я столкнулся с той же проблемой, что и вы. Я хотел сделать в
DIV
качестве фона, почему, потому что его легко манипулировать div с помощью JavaScript. В любом случае три вещи, которые я сделал в CSS для этого div.CSS:
источник
Если вы ориентируетесь на более современные браузеры, жизнь может быть очень простой. пытаться:
если вам это нужно на 50% страницы, замените 100 на 50.
источник
Я хочу охватить всю веб-страницу, прежде чем предлагать модальное всплывающее окно. Я перепробовал много методов с использованием CSS и Javascript, но ни один из них не помог, пока я не нашел следующее решение. Это работает для меня, я надеюсь, что это поможет вам тоже.
Удачи ;-)
источник
источник
источник
Просто, просто заверните это в таблицу div ...
HTML:
CSS:
источник
Ответ здесь ... ВЫ НЕ МОЖЕТЕ. Тем не менее, вы все еще можете решить исходную проблему, думая немного по-другому.
Просто используйте
position: fixed
. Тогда, независимо от того, где пользователь прокручивает, он охватит всю высоту:Разве это не то, что вы хотите?
источник