Подтвердить что ты не робот

Styling HTML и BODY селектор высоты: 100%; против 100vh

Мы с братом возились в возвышенности раньше, и он вдруг крикнул: "Я узнал что-то новое!"

Немного потрясенный, я спросил: "Что это...?"

Он ответил: "Высота видового экрана! Я начал с I.E.6, когда он не был полностью поддержан и никогда не смотрел на него снова". Затем он продолжил показывать мне.

На что я ответил: "Я совершил то же самое здесь". и показал ему еще один проект песочницы, с которым я столкнулся.

В моем проекте, в CSS, я написал

(редактирование: я отредактировал, чтобы поместить цвет фона в div, а не в html или тело, мою ошибку)

(jsfiddle http://jsfiddle.net/nvLq8eg9/embedded/result/)

html, body {
    height: 100%;
}

div {
    height: 100%;
    background: green;
}

его код, (jsfiddle http://jsfiddle.net/nvLq8eg9/1/embedded/result/)

div {
    height: 100vh;
    background: green;
}

Оба сделали практически то же самое. После того, как мы провели здесь некоторые исследования, кажется, что обычно с помощью первого метода обычно возникает невозможность прокрутки; однако в моем проекте sandbox у меня было больше контента, и я смог прокручивать и взаимодействовать с веб-сайтом в обычном режиме.

Ни один из нас не смог определить, каковы различия между обоими методами. Может ли кто-нибудь здесь научить нас?

Спасибо!

4b9b3361

Ответ 1

height: 100vh= 100% высоты окна просмотра

height: 100%= 100% высоты родительского элемента

Вот почему вам нужно добавить height: 100% в html и body, поскольку по умолчанию они не имеют размера

Что-то, что вам нужно знать: если вы используете% для вертикального поля или заполнения,% будет вычисляться по ширине родительского элемента, а не по высоте.

Совет: попробуйте использовать vh и vw для размера шрифта:) Мне нравится этот (не поддерживается в некоторых браузерах, которые я знаю): font-size: calc(.5vh + .5vw); (например)

См. хорошую страницу здесь для единиц CSS: http://css-tricks.com/the-lengths-of-css/

Ответ 2

высота: 100vh = 100% высоты просмотра

Технически это правда, но лучший способ подумать - это 100% от доступной высоты.

Если вы хотите заполнить div с доступной высотой, это может быть полезным полезным трюком. Прежде чем я узнал об этом, я должен был бы обеспечить, чтобы каждый div от html до вложенного div имел высоту 100%, которая может быть утомительной и подверженной ошибкам. Вместо этого теперь я использую только высоту: 100vh на вложенном элементе.

См. Этот gist.run для примера с Bootstrap 4.1:

Ответ 3

Единицы представления порта = vw, vh, vmin и vmax - основаны на размере окна просмотра браузера. Поскольку их фактический размер изменяется в зависимости от размера области просмотра, это делает их отличными единицами для адаптивного дизайна

Примечание: При работе с шириной, то блок% больше подходит, но с высотой, блок В.Х. лучше.

ширина области просмотра будет на самом деле больше, чем ширина элемента html.

Окно просмотра> html> body