TL; DR - оживить меню до height: calc(100vh - $nav-height)
щелчка.
Я считаю, что вы ищете vh и vw , ширину видового экрана и высоту видового экрана. Они работают как проценты, но вместо того, чтобы относиться к родительскому контейнеру (например, к настройке width: 100%
), они относятся к окну просмотра. Так, например, width: 100vw
это означает 100% ширины окна просмотра , а не его родительский контейнер.
Эти устройства имеют очень хорошую поддержку во всех существующих браузерах: https://caniuse.com/#feat=viewport-units
Если вы хотите, чтобы выпадающие элементы также занимали всю высоту страницы, вы можете использовать Flexbox для этого. Оберните элементы списка в display: flex
контейнере и поиграйте с justify-content
и align-items
атрибутом (возможно , используя space-around
свойство) , так что элементы автоматически распространяться. Вот блестящее руководство по спецификациям Flexbox: https://css-tricks.com/snippets/css/a-guide-to-flexbox/
Редактировать : Благодаря Mark E для обеспечения рабочей скрипки. Включая здесь измененную версию, которая использует display: flex
свойство для распространения элементов по всей высоте страницы: https://jsfiddle.net/od5g8v4a/14/ . Кажется, это не нарушает настольную версию меню. Я включил комментарии, чтобы показать, что было изменено.
Обратите внимание, что технически высота не должна анимироваться 100vh
точно - это должно быть 100vh - $navbar-height
. Вы можете использовать этуcalc()
функцию для достижения этой цели.