Попробуйте установить высоту элемента html на 100%.
html,
body {
height: 100%;
}
Тело смотрит на родителя (HTML), как масштабировать динамическое свойство, поэтому для элемента HTML необходимо также установить его высоту.
Однако содержание тела, вероятно, должно измениться динамически. Установка минимальной высоты до 100% выполнит эту задачу.
html {
height: 100%;
}
body {
min-height: 100%;
}
Попробуйте
<html style="width:100%; height:100%; margin: 0; padding: 0;">
<body style="overflow:hidden; width:100%; height:100%; margin:0; padding:0;">
width: 100%
для элементов body и html? Да, я понимаю, что с практической точки зрения body { margin: 0; }
должно быть достаточно в большинстве случаев. Я просто хочу понять более подробно.
– john c. j.
23 January 2017 в 18:44
Здесь обновление
html
{
height:100%;
}
body{
min-height: 100%;
position:absolute;
margin:0;
padding:0;
}
Если у вас есть фоновое изображение, тогда вы захотите установить это вместо:
html{
height: 100%;
}
body {
min-height: 100%;
}
Это гарантирует, что тег тела можно продолжать расти, когда контент выше, чем область просмотра, и что фоновое изображение продолжает повторяться / прокручиваться / когда вы начинаете прокручивать вниз.
Помните, что если вам нужно поддерживать IE6, вам нужно будет найти способ клина в height:100%
для тела, IE6 рассматривает height
как min-height
в любом случае.
body{min-height: 100vh}
– Angry Dan
8 July 2015 в 15:39
body { height: auto; }
для прокрутки, чтобы они не отображались в FireFox. кроме этого, отлично работает.
– Torxed
27 January 2016 в 14:09
html {
background: url(images/bg.jpg) no-repeat center center fixed;
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: cover;
min-height: 100%;
}
html body {
min-height: 100%
}
Работает для всех основных браузеров: FF, Chrome, Opera, IE9 +. Работает с фоновыми изображениями и градиентами. Полосы прокрутки доступны в виде содержимого.
Если вы хотите сохранить поля на теле и не хотите полос прокрутки, используйте следующий css:
html { height:100%; }
body { position:absolute; top:0; bottom:0; right:0; left:0; }
Настройка body {min-height:100%}
даст вам полосы прокрутки.
См. демонстрацию в http://jsbin.com/aCaDahEK/2/edit?html,output .
height: auto;
в предложении body
, чтобы теперь появлялись полосы прокрутки.
– Torxed
27 January 2016 в 14:08
Здесь:
html,body{
height:100%;
}
body{
margin:0;
padding:0
background:blue;
}
Если вы не хотите работать с редактированием собственного CSS-файла и сами определяете правила высоты, наиболее типичные рамки CSS также решают эту проблему с помощью элемента body, заполняющего всю страницу, среди других вопросов, на
Например, Tacit CSS framework решает эту проблему из коробки, где вам не нужно определять какие-либо правила и классы CSS, а вы просто включите файл CSS в свой HTML.
Вы также можете использовать JS, если необходимо
var winHeight = window.innerHeight ||
document.documentElement.clientHeight ||
document.body.clientHeight;
var pageHeight = $('body').height();
if (pageHeight < winHeight) {
$('.main-content,').css('min-height',winHeight)
}
@media all {
* {
margin: 0;
padding: 0;
}
html, body {
width: 100%;
height: 100%;
} }
width: 100%
для элементов body и html? Да, я понимаю, что с практической точки зрения body { margin: 0; }
должно быть достаточно в большинстве случаев. Я просто хочу понять более подробно.
– john c. j.
23 January 2017 в 18:45
Быстрое обновление
html, body{
min-height:100%;
overflow:auto;
}
Лучшее решение с сегодняшним CSS
html, body{
min-height: 100vh;
overflow: auto;
}
О дополнительном пространстве внизу: ваша страница - приложение ASP.NET? Если это так, возможно, в вашей разметке есть почти все. Не забудьте также форматировать форму. Добавление overflow:hidden;
в форму может удалить дополнительное пространство внизу.
Что я использую в начале буквально каждого используемого файла CSS:
html, body{
margin: 0;
padding: 0;
min-width: 100%;
width: 100%;
max-width: 100%;
min-height: 100%;
height: 100%;
max-height: 100%;
}
Поля 0 обеспечивают, браузера, чтобы иметь некоторое пространство слева или справа от них.
Заполнение 0 гарантирует, что элементы HTML и BODY не будут автоматически выталкивать все из них вниз или вправо из-за настроек браузера.
Варианты ширины и высоты установлены на 100%, чтобы гарантировать, что браузер не будет изменять их размер в ожидании фактического наличия заданного поля или заполнения, с минимальным и максимальным набором на случай, если какие-то странные, необъяснимые вещи происходит, хотя вы, вероятно, им не нужны.
Это решение также означает, что, как и в случае, когда я впервые начал работать с HTML и CSS несколько лет назад, вам не придется давать свой первый <div>
margin:-8px;
, чтобы он поместился в углу окна браузера.
Прежде чем я разместил сообщение, я посмотрел на свой другой проект в полноэкранном CSS и обнаружил, что все, что я использовал, было j ust body{margin:0;}
и ничего больше, что отлично работало в течение двух лет, над которыми я работал над этим.
Надеюсь, что этот подробный ответ поможет, и я чувствую вашу боль. На мой взгляд, глупо, что браузеры должны установить невидимую границу слева, а иногда и верхнюю часть элементов body / html.
width: 100%
для элементов body и html? Да, я понимаю, что с практической точки зрения body { margin: 0; }
должно быть достаточно в большинстве случаев. Я просто хочу понять более подробно.
– john c. j.
23 January 2017 в 18:37
html, body
{
height: 100%;
margin: 0;
padding: 0;
}
После тестирования различных сценариев я считаю, что это лучшее решение:
html {
width:100%;
height: 100%;
display: table;
}
body {
width:100%;
display:table-cell;
}
html, body {
margin: 0px;
padding: 0px;
}
Это динамично, поскольку элемент html и body автоматически расширяется, если их содержимое переполняется. Я тестировал это в последней версии Firefox, Chrome и IE 11.
Посмотрите здесь полную скрипку (для вас там нет поклонников таблицы, вы всегда можете изменить ее для использования div):
https://jsfiddle.net/71yp4rh1/9/
С учетом сказанного, есть несколько проблем с ответами, размещенными здесь.
html, body {
height: 100%;
}
Использование вышеприведенного CSS приведет к тому, что html и элемент body НЕ будут автоматически расширяться, если их содержимое переполняется, как показано здесь:
https://jsfiddle.net/ 9vyy620m / 4 /
Как вы прокручиваете, обратите внимание на повторяющийся фон? Это происходит потому, что высота элемента тела НЕ увеличилась из-за переполнения его дочерней таблицы. Почему он не расширяется, как любой другой элемент блока? Я не уверен. Я думаю, что браузеры обрабатывают это неправильно.
html {
height: 100%;
}
body {
min-height: 100%;
}
Установка минимальной высоты 100% на тело, как показано выше, вызывает другие проблемы. Если вы это сделаете, вы не можете указать, что дочерний div или таблица занимает процентную высоту, как показано здесь:
https://jsfiddle.net/aq74v2v7/4/
Надеюсь, это поможет кому-то. Я думаю, что браузеры обрабатывают это неправильно. Я бы ожидал, что высота тела будет автоматически регулироваться, если ее дети переполнится. Однако это не происходит, если вы используете 100% высоту и 100% ширину.
Только с 1 строкой CSS ... Вы можете сделать это.
body{ height: 100vh; }
100vh
на самом деле не то, что вы ожидаете от iOS Safari.
– die maus
13 January 2017 в 17:33
CSS3 имеет новый метод.
height:100vh
Он делает ViewPort на 100% равным высоте.
Таким образом, ваш код должен быть
body{
height:100vh;
}
Пожалуйста, проверьте это:
* {margin: 0; padding: 0;}
html, body { width: 100%; height: 100%;}
Или попробуйте новый метод Высота видового экрана:
html, body { width: 100vw; height: 100vh;}
Видовой экран: если ваше окно просмотра использует любое содержимое экрана размера, оно будет иметь полную высоту для экран.
width: 100%
для элементов body и html?
– john c. j.
23 January 2017 в 19:08
все ответы на 100% правильны и хорошо объяснены, но я сделал что-то хорошее и очень просто, чтобы сделать его отзывчивым.
здесь элемент займет 100% высоты порта просмотра, но когда дело доходит до мобильного его вид не выглядит особенно привлекательным на портретном (мобильном) телефоне, поэтому, когда порт просмотра становится меньше, элемент будет рушиться и перекрываться друг с другом. поэтому, чтобы сделать его немного отзывчивым, это код. надеюсь, что кто-то получит помощь от этого.
<style>
.img_wrap{
width:100%;
background: #777;
}
.img_wrap img{
display: block;
width: 100px;
height: 100px;
padding: 50px 0px;
margin: 0 auto;
}
.img_wrap img:nth-child(2){
padding-top: 0;
}
</style>
<div class="img_wrap">
<img src="https://i.pinimg.com/originals/71/84/fc/7184fc63db0516a00e7d86900d957925.jpg" alt="">
<img src="https://i.pinimg.com/originals/71/84/fc/7184fc63db0516a00e7d86900d957925.jpg" alt="">
</div>
<script>
var windowHeight = $(window).height();
var elementHeight = $('.img_wrap').height();
if( elementHeight > windowHeight ){
$('.img_wrap').css({height:elementHeight});
}else{
$('.img_wrap').css({height:windowHeight});
}
</script>
здесь JSfiddle Demo.
body {min-height}
, вы не можете использовать трюк.body-child{height: 100%}
. – Salman A 6 December 2014 в 10:52vh
- & gt;body { height: 100vh }
- проверьте ответ здесь stackoverflow.com/a/25829844/2680216 – Adriano Resende 2 October 2015 в 17:53