Нужна помощь донатом
для написания учебников Kotlin, Java, C++, C#, Go, Rust, Dart
подробности по ссылке

Sticky-меню на CSS

Sticky-меню - это навигационная панель, которая остается видимой при прокрутке страницы, прилипая к верхней части окна браузера. Это удобно для пользователей, так как они всегда имеют доступ к основным разделам сайта. Мы реализуем это с помощью CSS-свойства position в значении sticky.

HTML структура

Создадим базовую разметку нашего меню:

<h1>Main Site Header</h1> <header class="header"> <nav class="nav"> <a href="#">Home</a> <a href="#">About</a> <a href="#">Services</a> <a href="#">Contact</a> </nav> </header> <main> <!-- Контент страницы --> </main>

Базовые стили

Добавим основные CSS стили для меню:

.header { background: #f8f8f8; padding: 15px 0; box-shadow: 0 2px 5px rgba(0,0,0,0.1); } .nav { display: flex; justify-content: center; gap: 30px; } .nav a { text-decoration: none; color: #333; font-weight: 500; }

Добавим некоторые CSS стили для контента:

h1 { text-align: center; } main { width: 400px; text-align: justify; margin: 20px auto; }

Делаем меню sticky

Чтобы меню стало sticky, добавим следующие стили:

.header { position: sticky; top: 0; z-index: 100; }

Свойство position: sticky работает в сочетании со свойством top. Значение 0 означает, что меню будет прилипать к верхней границе окна браузера.

Дополнительные улучшения

Добавим плавный переход при появлении тени:

.header { transition: box-shadow 0.3s ease; } .header.scrolled { box-shadow: 0 4px 10px rgba(0,0,0,0.1); }

Итоговый код

Вот полный код нашего sticky-меню:

<h1>Main Site Header</h1> <header class="header"> <nav class="nav"> <a href="#">Home</a> <a href="#">About</a> <a href="#">Services</a> <a href="#">Contact</a> </nav> </header> <main> some long text </main> .header { position: sticky; top: 0; z-index: 100; background: #f8f8f8; padding: 15px 0; box-shadow: 0 2px 5px rgba(0,0,0,0.1); transition: box-shadow 0.3s ease; } .header.scrolled { box-shadow: 0 4px 10px rgba(0,0,0,0.1); } .nav { display: flex; justify-content: center; gap: 30px; } .nav a { text-decoration: none; color: #333; font-weight: 500; } h1 { text-align: center; } main { width: 400px; text-align: justify; margin: 20px auto; }

:

↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить