CSS 100vh смещение по заголовку

Вот эта ручка у меня: https://codepen.io/anon/pen/wPdrod

Как видите (по крайней мере, в Chrome и Firefox), есть две вертикальные полосы прокрутки. Должен быть только внутренний, так как заголовок должен оставаться статичным.

CSS, вызывающий это:

#app
{
    display: flex;
    flex-direction: column;
    box-sizing: border-box;
    height: 100vh;
}

Особенно высота 100вх. Это приводит к тому, что область просмотра становится слишком высокой на 36 пикселей. Какая высота заголовка. Если я сделаю:

#app
{
    ...
    height: calc(100vh - 36px);
}

Тогда он отлично работает. Я пытаюсь понять, зачем мне вообще это нужно. Что в этом макете заставляет 100vh учитывать высоту заголовка? Я чувствую, что мне не нужно делать это вычисление, поскольку заголовок находится внутри div макета вместе с остальными элементами.


person Troncoso    schedule 12.11.2017    source источник
comment
Вы должны разместить здесь свою разметку, а не код, который может исчезнуть завтра и сделать ваш вопрос и ответы бесполезными. минимальный воспроизводимый пример   -  person Rob    schedule 12.11.2017
comment
Немного обновил свой ответ, постарался сделать его более понятным. Дайте мне знать, если есть еще что-то, что я могу уточнить или скорректировать.   -  person Ason    schedule 13.11.2017
comment
Поскольку я не получил никакого ответа, я просто решил, что мой ответ не помог, поэтому я удалил его.   -  person Ason    schedule 15.11.2017


Ответы (1)


#header находится внутри #app, так что это нормальное поведение, особенно если у вашего соседа (#body) height: 100% (высота устанавливается относительно родителя, поэтому он также 100vh). Это причина показа второго свитка.

На самом деле вы можете удалить высоту из #body.

person Dawid Winiarczyk    schedule 12.11.2017
comment
Спасибо за быстрый ответ. Если я уберу высоту тела, то заголовок прокрутится за пределы экрана. Заголовок должен оставаться наверху статичным. В области содержимого должна быть полоса прокрутки. - person Troncoso; 12.11.2017
comment
@Troncoso добавить position:fixed в #header - person Albin Paul; 12.11.2017
comment
Вы также можете попробовать с height: calc (100% - 36px) в #body. - person Dawid Winiarczyk; 12.11.2017