Я знаю, що питання дуже старе, і @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>