Бесплатный вебинар
«как найти любимую работу»
Подарки на 150 000 ₽ за участие
Живой эфир
Записи не будет!
00:00:00:00
дн.ч.мин.сек.

Решение: перекрытие содержимого сайта navbar в Bootstrap

Быстрый ответ

Для того чтобы сделать содержимое видимым и недоступным для перекрытия фиксированной навигационной панелью в Bootstrap, примените отступ padding-top к тегу <body>. Значение этого отступа должно соответствовать высоте панели. Например, если высота равна стандартным 50px, сделайте следующее:

CSS
Скопировать код
body { padding-top: 70px; } /* Теперь контент перенесен ниже на 70px и выглядит отлично! */

Если у вас Bootstrap 4 и новее, вы можете использовать вспомогательные классы для задания отступов:

HTML
Скопировать код
<body class="pt-5">
  <!-- Теперь ничто не сможет скрыть ваш контент! -->
</body>

Таким образом, вы обеспечите видимость содержимого под навигационной панелью при прокрутке страницы.

Кинга Идем в IT: пошаговый план для смены профессии

Регулируем padding-top

Если дизайн вашей веб-страницы содерижт элементы разных размеров или же высота навигационной панели отличается от стандартной, отрегулируйте значение отступа padding-top. Определите реальную высоту вашей панели и, в случае если она более 50px, скорректируйте отступ так:

CSS
Скопировать код
body { padding-top: 95px; } /* Наша панель навигации несколько выше стандартной и отступ должен быть больше */

Учет адаптивного дизайна

Подгоните отображение под различные размеры экранов с помощью медиа-запросов для корректировки padding-top. Высота навигационной панели может быть различной на маленьких экранах:

CSS
Скопировать код
@media (min-width: 768px) {
  body { padding-top: 70px; } /* Большие экраны заслуживают больший отступ */
}

@media (max-width: 767.98px) {
  body { padding-top: 50px; } /* Меньшие экраны требуют меньший отступ */
}

Замените класс "navbar-fixed-top" на "sticky-top", чтобы обеспечить неперекрываемость содержимого:

HTML
Скопировать код
<nav class="navbar navbar-default sticky-top">
  <!-- Я всегда на виду и не захватываю ваше содержимое -->
</nav>

Документация Bootstrap 4 поможет вам разобраться с sticky-top.

Управление перекрытием элементов с помощью z-index

Если некоторые элементы конкурируют за зону видимости, применяйте свойство z-index для контроля их перекрытия:

CSS
Скопировать код
.navbar-fixed-top { z-index: 1030; } /* Панель навигации будет всегда привлекать пристальное внимание */

Визуализация

Рассмотрите веб-страницу как модный киоск с бургерами:

🍔 == Навигационная панель
🥤 == Содержимое

Навигационная панель (🍔), если она закреплена, может перекрыть содержимое (🥤). Отделите их друг от друга, создав пространство между ними.

Markdown
Скопировать код
🍔
-----
🥤

Этот подход поможет каждому элементу занимать свое место, не создавая помех другим.

Динамические элементы навигации

В случае элементов, таких как раскрывающийся поиск, которые способны менять размер панели, применяйте JavaScript для адаптивного сохранения отступа:

JS
Скопировать код
function fixNavbarOverlap() {
  const navbarHeight = document.querySelector('.navbar').offsetHeight;
  document.body.style.paddingTop = `${navbarHeight}px`;
}

// Обновлите отступ при изменении размера окна для корректного отображения.
window.addEventListener('resize', fixNavbarOverlap);
fixNavbarOverlap();

Быстрое решение проблемы смещения содержимого

Смещение, вызванное дополнительным padding-top, можно устранить, используя .navbar.navbar-default.navbar-static-top для стабилизации внешнего вида.

Фиксированная vs прилипающая навигационная панель: выбор подхода

Когда выбираете между fixed-top и sticky-top, определяйте главную цель с точки зрения пользовательского опыта, которого вы хотите достичь. fixed-top показывает панель всегда, в то время как sticky-top отображает ее только при необходимости, а именно во время прокрутки.

Полезные материалы

  1. Navbar в Bootstrap
  2. Spacing в Bootstrap
  3. Применение позиции с CSS | MDN
  4. Примеры реализации Sticky Footer | CSS-Tricks
  5. Использование Z-index | CSS-Tricks
  6. Игры с единицами области просмотра | CSS-Tricks
  7. Адаптивная навигационная панель, фиксированная сверху и снизу и др в Bootstrap 5 – Tutorial Republic
Проверь как ты усвоил материалы статьи
Пройди тест и узнай насколько ты лучше других читателей
Какое значение отступа padding-top нужно задать для тега <body>, если высота фиксированной навигационной панели составляет 50px?
1 / 5