Я знаю, что вопрос очень старый, и @Josh Beam решил самую большую разницу, но есть еще один:
Предположим, у вас есть <div>
прямой дочерний элемент , <body>
который вы хотите заполнить весь видовой экран, так что вы используете width: 100vw; height: 100vh;
. Все это работает так же, как и width: 100%; height: 100vh;
до тех пор, пока вы не добавите больше контента и не появится вертикальная полоса прокрутки. Поскольку vw
учетная запись для полосы прокрутки как часть области просмотра, width: 100vw;
будет немного больше, чем width: 100%;
. Эта небольшая разница в итоге добавляет горизонтальную полосу прокрутки (требуется, чтобы пользователь видел эту небольшую дополнительную ширину), и, как следствие, высота также будет немного отличаться в обоих случаях.
Это необходимо учитывать при принятии решения о том, какой из них использовать, даже если размер родительского элемента совпадает с размером области просмотра документа.
Пример:
Использование width:100vw;
:
.fullviewport {
width: 100vw;
height: 100vh;
background-color: red;
}
.extracontent {
width: 100vw;
height: 20vh;
background-color: blue;
}
<html>
<body>
<div class="fullviewport"></div>
<div class="extracontent"></div>
</body>
</html>
Использование width:100%;
:
.fullviewport {
width: 100%;
height: 100vh;
background-color: red;
}
.extracontent {
width: 100%;
height: 20vh;
background-color: blue;
}
<html>
<body>
<div class="fullviewport"></div>
<div class="extracontent"></div>
</body>
</html>