- Как сделать — Панель навигации липкой/прикрепить
- Как создать липкую навигационную панель
- Пример
- Пример
- Пример
- Создаем фиксированное навигационное меню
- Примеры
- Создание фиксированной навигационной панели
- HTML
- CSS
- Примечание
- Подводя итоги
- Как сделать — Фиксированное меню
- Cоздать фиксированное меню
- Пример
- Пример
- Создать фиксированное нижнее меню
- Пример
Как сделать — Панель навигации липкой/прикрепить
Узнать, как создать липкую навигационную панель с помощью CSS и JavaScript.
Как создать липкую навигационную панель
Шаг 1) Добавить HTML:
Создание панели навигации:
Пример
Шаг 2) Добавить CSS:
Пример
/* Стиль навигационной панели */
#navbar overflow: hidden;
background-color: #333;
>
/* Ссылки навигационной панели */
#navbar a float: left;
display: block;
color: #f2f2f2;
text-align: center;
padding: 14px;
text-decoration: none;
>
/* Содержимое страницы */
.content padding: 16px;
>
/* Класс sticky добавляется в навигационную панель с помощью JS, когда он достигает своей позиции прокрутки */
.sticky position: fixed;
top: 0;
width: 100%;
>
/* Добавить некоторые верхние отступы к содержимому страницы для предотвращения внезапного быстрого перемещения (поскольку панель навигации получает новое положение в верхней части страницы (position:fixed and top:0) */
.sticky + .content padding-top: 60px;
>
Шаг 3) Добавить JavaScript:
Пример
// Когда пользователь прокручивает страницу, выполните myFunction
window.onscroll = function() ;
// Получить навигатор
var navbar = document.getElementById(«navbar»);
// Получить смещение позиции навигационной панели
var sticky = navbar.offsetTop;
// Добавить класс sticky к навигационной панели, когда вы достигнете ее положения прокрутки. Удалите «sticky», когда вы покидаете положение прокрутки
function myFunction() if (window.pageYOffset >= sticky) navbar.classList.add(«sticky»)
> else navbar.classList.remove(«sticky»);
>
>
Создаем фиксированное навигационное меню
Фиксированное навигационное меню часто называют « липким » меню, потому как его суть, помимо самой навигации, состоит в том, что оно всегда остается в одном положении на странице, независимо от скроллинга пользователя.
Это довольно распространенная практика, когда в шаблонной навигации по сайту используется подобный вариант исполнения меню, да и не только меню.
Строка поиска, кнопки социальных сетей, всевозможные уведомления. Подобный шаблон гарантирует, что наиболее важные элементы сайта будут находиться в легкодоступном месте независимо от того, где именно на странице в данный момент находится посетитель.
В этой статье я покажу вам простой CSS -прием для внедрения в сайт горизонтального « липкого » навигационного меню.
Примеры
Прежде чем начать, мы взглянем на несколько сайтов, которые уже используют фиксированные навигационные панели, просто для того, чтобы увидеть, как это работает на практике.
Ниже я привожу несколько ссылок.
В Niice используется фиксированная панель навигации, которая содержит в себе окно поиска и меню навигации по сайту. Во время просмотра проектов, вы можете быстро фильтровать их, не прерываясь на перемещение по сайту, используя окно поиска в верхней части экрана:
Разработчики онлайн-публикатора 99U встроили в навигационную панель меню навигации. Во время чтения новости пользователь ресурса имеет возможность моментального перехода в необходимый ему раздел сайта:
Сайт Forbes.com расположил меню, систему поиска по сайту и виджет для авторизации на фиксированной панели навигации, предоставив пользователю, читающему новости удобство быстрого доступа.
Это позволяет пользователям быстро прыгать к следующей статье после прочтения предыдущей. Фиксированная панель навигации увеличивает время нахождения пользователя на сайте, потому как читатели постоянно используют меню для выбора свежих новостей:
И, как хорошо видно из предыдущего примера, навигационная панель существенно повышает юзабилити сайта с множеством разнообразного контента.
Навигационная панель это отличный способ, позволяющий сократить время, потраченное на переход от одной задачи к другой при работе с сайтом ( поиск, авторизация, перемещение по структуре ). Говоря по-существу, этот элемент дизайна, повышает эффективность сайта, применяя законы Фиттса :
Создание фиксированной навигационной панели
Теперь, когда мы просмотрели достаточно примеров и осознали преимущества навигации подобного типа, приступим, непосредственно, к повышению эффективности работы нашего онлайн — ресурса.
Ниже демонстрационный пример того, как это выглядит на практике:
ПРОСМОТРЕТЬ ДЕМО
СКАЧАТЬ ИСХОДНИКИ С GITHUB
Перейти к GitHub Repository
HTML
Разметка требуется минимальная — элемент блочной верстки, в который мы поместим содержимое фиксированной навигационной панели:
Элемент nav отлично подходит в данном случае. Он предоставляет сторонним сервисам ( таким, как например роботы поисковых систем ) возможность без проблем понимать информационную структуру вашего сайта. Элемент nav по умолчанию является блочным, так что не нужно писать лишнюю строчку CSS -кода.
Но если вы не хотите использовать nav, то подойдет любой по умолчанию блочный элемент, например div . Также можно использовать inline -элемент, такой как span , но прописать ему в CSS -коде свойство display: block .
CSS
Вот CSS -код, который заставляет нашу навигационную панель фиксироваться в одном месте:
Ранее, мы присвоили нашему HTML -элементу класс fixed-nav-bar , поэтому сейчас просто применим к данному селектору нужные стили.
Значения трех последних свойств ( width , height и background-color ) меняйте на подходящие для вашего сайта.
Давайте теперь рассмотрим подробнее эти четыре волшебных CSS -свойства, ответственных за магию:
Когда мы устанавливаем значение position равным fixed панель позиционируется относительно области просмотра. Это и позволяет панели оставаться на одном месте:
Устанавливая свойства top , left и right в 0, мы избегаем нежелательного появления отступов по сторонам панели навигации.
Подсказка : если нужно разместить панель в » подвале » области просмотра то, нужно просто заменить top: 0 на bottom: 0 :
Такое большое значение z-index используется, чтобы избежать появления другого элемента HTML -разметки поверх фиксированной панели навигации ( если конечно не появится элемента со значением z-index больше, чем 9999 ).
Примечание
В демо-примере применен довольно устаревший вариант респонсивного, выполненного на CSS , навигационного меню. В этом виде оно является концепцией, но не имеет законченной формы. Так как в этом уроке нашей основной целью стала постройка фиксированной навигационной панели, которая может являться контейнером для любых других элементов страницы, меню я обсуждать не стану.
Исследуйте исходный код , если вам станет интересно, как работает эта часть ( если возникнут непонятные моменты, просто делайте tweet и я буду счастлив помочь вам разобраться ).
Подводя итоги
Фиксированная панель навигации довольно проста в реализации. Она требует минимальной HTML -разметки и всего несколько CSS -свойств, которые мы с вами рассмотрели.
Обсуждаемый в этой статье метод имеет отличную кроссбраузерную совместимость, потому как использует только проверенные и надежные свойства CSS , и, таким образом, будет работать должным образом даже в самых древних веб-браузерах. Тем не менее, если обратная совместимость сильно важна для ваших проектов, вы можете принять решение о замене nav ( который относится к HTML5 ) на div .
В нужном контексте фиксированная панель навигации сможет улучшить удобство использования, потому что ее использование уменьшает задержку при переходе к новой задаче, по сравнению с традиционной горизонтальной панелью навигации, которая требует прокрутки обратно к верхней части страницы.
Как сделать — Фиксированное меню
Узнайте, как создать «фиксированное» меню с помощью CSS.
Cоздать фиксированное меню
Шаг 1) Добавить HTML:
Пример
Какой-то текст какой-то текст.. какой-то текст какой-то текст..
Шаг 2) Добавить CSS:
Чтобы создать фиксированное верхнее меню, используйте position:fixed и top:0 . Примечание, что фиксированное меню будет накладываться на другой контент. Чтобы исправить это, добавьте margin-top (к содержимому), которое равно или больше высоты вашего меню.
Пример
/* Навигационная панель */
.navbar overflow: hidden;
background-color: #333;
position: fixed; /* Установите навигационную панель в фиксированное положение */
top: 0; /* Расположите навигационную панель в верхней части страницы */
width: 100%; /* Полная ширина */
>
/* Ссылки в панели навигации */
.navbar a float: left;
display: block;
color: #f2f2f2;
text-align: center;
padding: 14px 16px;
text-decoration: none;
>
/* Изменение фона при наведении курсора мыши */
.navbar a:hover background: #ddd;
color: black;
>
/* Основное содержание */
.main margin-top: 30px; /* Добавить верхнее поле, чтобы избежать наложения */
>
Создать фиксированное нижнее меню
Чтобы создать фиксированное нижнее меню, используйте position:fixed и bottom:0 :
Пример
/* Навигационная панель */
.navbar position: fixed; /* Установите навигационную панель в фиксированное положение */
bottom: 0; /* Расположите навигационную панель в нижней части страницы */
width: 100%; /* Полная ширина */
>
/* Основное содержание */
.main margin-bottom: 30px; /* Добавить в нижнее поле, чтобы избежать наложения */
>
Совет: Зайдите на наш учебник CSS Навигации, чтобы узнать больше о навигационных панелях.