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

Как запретить vh-units игнорировать полосу прокрутки?

Я работаю над макетом страницы с горизонтальной полосой прокрутки. У меня есть панели с фиксированной шириной в горизонтальном порядке, которые должны иметь высоту видового экрана. Я решил протестировать блок vh, чтобы сделать это.

.panel { height: 100vh; }

Это работает нормально, пока я не получу полосу прокрутки. Проблема заключается в том, что vh игнорирует высоту, используемую полосой прокрутки, и поэтому добавляет вертикальную полосу прокрутки.

Я хотел бы вычесть высоту полосы прокрутки из измерений vh; есть ли способ сделать это?

4b9b3361

Ответ 1

Вы можете использовать родительский элемент с overflow-y: hidden, чтобы убедиться, что вы не получаете вертикальную полосу прокрутки, а затем безопасно используете 100vh внутри нее. Это предполагает, что вам действительно нужно 100vh по какой-то причине и просто не нужно заполнять вертикальное пространство.

HTML

<div id="main">
  <div id="container"></div>
</div>

CSS

#main {
  width:200vw;
  height:100%;
  background: red;
  position: absolute;
  overflow-y: hidden;
}

#container {
  height: 100vh;
  width:10px;
  background: blue;
}