Sticky header: CSS position: sticky i chowanie przy przewijaniu

Przewodnik po sticky header

Sticky header w CSS: position sticky, zmniejszanie, chowanie | We.Inc

Zrób przyklejony nagłówek z position: sticky, a potem dodaj zmniejszanie i chowanie przy przewijaniu. Demo na żywo, przesunięcia kotwic przez scroll-margin, poprawki z-index i mały hook React.

Nadaj nagłówkowi position: sticky i top: 0, a do tego tło i z-index, a pozostanie przypięty podczas przewijania strony. Przykleja się tylko w obrębie swojego rodzica, a przodek z ustawionym overflow może to zablokować. Aby nagłówek chował się przy przewijaniu, przełączaj klasę z translateY w nasłuchiwaczu zdarzenia scroll.

sticky a fixed w nagłówkach

Przyklejony nagłówek to jedna linijka CSS, dopóki coś się nie zepsuje: nagłówek nie chce się przykleić, linki do kotwic lądują pod nim albo rozwijane menu chowa się za treścią. Ta strona omawia tę linijkę CSS, a potem każdą z tych awarii, z demem przewijania na żywo, w którym przełączasz tryb zwykły, zmniejszający i chowający.

Najczęściej zadawane pytania

Dlaczego moje position: sticky nie działa?

Trzy typowe przyczyny: brak wartości inset, np. top: 0, rodzic kończący się zaraz po nagłówku, więc nie ma miejsca na przyklejenie, albo przodek z overflow innym niż visible, który staje się polem, do którego przykleja się nagłówek. Sprawdź je w tej kolejności.

Nagłówek powinien być sticky czy fixed?

Sticky jest prostszy, bo zachowuje swoje miejsce w układzie, więc nic nie przeskakuje pod nim na górze strony. Fixed przydaje się, gdy nagłówek musi leżeć nad pełnoekranową sekcją hero, ale wtedy sam dodajesz padding do strony.

Jak sprawić, by linki do kotwic nie chowały się pod przyklejonym nagłówkiem?

Dodaj scroll-padding-top do przewijanego kontenera, zwykle html, równe wysokości nagłówka. Dla pojedynczych celów możesz zamiast tego ustawić scroll-margin-top na samym nagłówku sekcji.

Dlaczego rozwijane menu pojawia się za treścią strony?

Pozycjonowanie sticky tworzy kontekst nakładania, więc wszystko w nagłówku może układać się warstwowo tylko w jego obrębie. Podnieś sam nagłówek przez z-index wyższy niż dalsza treść, na przykład z-index: 50, zamiast podnosić rozwijane menu.

Jak naprawdę działa sticky

Chowaj przy przewijaniu w dół, pokazuj przy przewijaniu w górę

Zmniejszanie bez skoków układu

Podstawowy przyklejony nagłówek

Przyklejony nagłówek na przewijanej stronie

Przewiń ramkę. Nagłówek zostaje na górze, a link do kotwicy zatrzymuje się pod nim dzięki scroll-padding-top.

Chowaj przy przewijaniu w dół, pokazuj przy przewijaniu w górę

CSS dla stanów ukrytego i zmniejszonego

Skrypt ustawia tylko atrybuty data. Każda zmiana wizualna jest w CSS.

Hook React: useHideOnScroll

Zwraca dwie wartości logiczne, które możesz rozłożyć na nagłówek jako atrybuty data. Próg 8px ignoruje drobne drgania.

Pułapki przyklejonego nagłówka

Objawy i rozwiązania

Zwykły sticky

Zmniejszanie

Chowanie przy przewijaniu

Demo przewijania na żywo

Przełączaj między trybem zwykłym, zmniejszaniem i chowaniem przy przewijaniu, a potem przewijaj wewnątrz pola.

Tryb nagłówka

Przewijana strona demo

Marka

Przewiń w dół, a potem trochę w górę.

Stan nagłówka: widoczny

Stan nagłówka: widoczny, przewinięty

Stan nagłówka: ukryty

Stan nagłówka: ukryty, przewinięty

Zacznij za darmo · Bez karty kredytowej

Powiązane: Poradniki

Produkt

Dla kogo

Funkcje

Zasoby

Firma

Mapa strony