Pozycjonowanie: relative, absolute, fixed, sticky
Wyprowadzaj elementy z normalnego przepływu za pomocą wartości position, aby nakładać treść, unieruchamiać nagłówki i tworzyć przyklejone panele boczne.
Pozycjonowanie: relative, absolute, fixed, sticky to bezpłatna lekcja Frontend Academy na CoddyKit. To lekcja 4 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Frontend Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Frontend Academy zawiera 4 lekcji w sumie.
Normalny przepływ dokumentu
Domyślnie elementy podążają za normalnym przepływem dokumentu: elementy blokowe układają się pionowo, a elementy liniowe płyną poziomo w obrębie tekstu. Właściwość position pozwala wyjść poza ten przepływ, aby tworzyć nakładki, stałe nagłówki i podpowiedzi.
position: static (domyślne)
Każdy element rozpoczyna działanie z wartością position: static. Oznacza to, że jest pozycjonowany zgodnie z normalnym przepływem dokumentu. Właściwości top, right, bottom i left nie mają wpływu na elementy statyczne.
position: relative
position: relative pozostawia element w normalnym przepływie, ale pozwala przesunąć go względem pierwotnej pozycji za pomocą właściwości top, right, bottom i left. Co najważniejsze, tworzy ono kontekst pozycjonowania dla elementów potomnych pozycjonowanych absolutnie.
.card {
position: relative;
top: 10px; /* shift 10px down from original position */
left: -5px; /* shift 5px left */
}position: absolute
position: absolute usuwa element z normalnego przepływu. Jest on pozycjonowany względem najbliższego pozycjonowanego przodka (dowolnego, którego pozycja różni się od static). Jeśli nie istnieje żaden pozycjonowany przodek, element jest pozycjonowany względem viewportu.
.card {
position: relative; /* creates context */
}
.card .badge {
position: absolute;
top: 12px;
right: 12px; /* top-right corner of .card */
}Właściwość z-index
Elementy pozycjonowane mogą na siebie nachodzić. Użyj z-index, aby kontrolować kolejność warstw. Wyższa wartość z-index oznacza wyższą warstwę. Działa to tylko w przypadku elementów pozycjonowanych (nie static). Tworzy nowy kontekst stosu.
.tooltip {
position: absolute;
z-index: 100; /* above other content */
}
.modal {
position: fixed;
z-index: 1000; /* above tooltip */
}position: fixed
position: fixed usuwa element z normalnego przepływu i przypina go do viewportu. Nie przewija się on razem ze stroną. To idealne rozwiązanie dla przyklejonych nagłówków, pływających przycisków akcji i banerów z informacją o plikach cookie.
.header {
position: fixed;
top: 0;
left: 0;
right: 0;
height: 64px;
background: white;
z-index: 50;
box-shadow: 0 1px 3px rgba(0,0,0,0.1);
}position: sticky
position: sticky to rozwiązanie hybrydowe: element przewija się razem ze stroną, dopóki nie osiągnie wartości progowej (ustawianej za pomocą top/bottom), a następnie przykleja się. Przydaje się w przypadku nagłówków sekcji w długich tabelach lub pasków bocznych, które przyklejają się po przewinięciu za nagłówek.
.sidebar {
position: sticky;
top: 80px; /* sticks 80px from top after scroll */
align-self: flex-start;
}Wyśrodkowywanie za pomocą position: absolute
Klasyczna technika: połączenie position: absolute; top: 50%; left: 50% z transform: translate(-50%, -50%) pozwala idealnie wyśrodkować element w jego pozycjonowanym elemencie nadrzędnym.
.modal {
position: fixed;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
width: 480px;
background: white;
border-radius: 12px;
}overflow: hidden przycina absolutnie pozycjonowane elementy potomne
Absolutnie pozycjonowany element potomny może domyślnie wykraczać poza granice elementu nadrzędnego. Dodanie do elementu nadrzędnego overflow: hidden przycina wszystko poza jego obszarem — przydaje się to w efektach dotyczących obrazów na kartach oraz przycinaniu odznak.
Pułapka: niezamierzone konteksty stosu
Niektóre właściwości nieumyślnie tworzą konteksty stosu: transform, filter, isolation: isolate. Może to prowadzić do walk z z-index, w których element z z-index: 9999 nadal znajduje się za innym, ponieważ jest wewnątrz kontekstu stosu o niższym poziomie.
Kiedy używać poszczególnych sposobów pozycjonowania
relative: przesunięcia i kontekst pozycjonowania. absolute: odznaki, podpowiedzi i nakładki względem elementu nadrzędnego. fixed: stale widoczne nagłówki, okna modalne i powiadomienia toast. sticky: nagłówki sekcji oraz nawigacja na pasku bocznym, która podąża za przewijaniem. Unikaj używania position do tworzenia układów — używaj Flex lub Grid.
Szybkie sprawdzenie
Element ma ustawienia position: absolute; top: 0; right: 0;. Gdzie się pojawi, jeśli jego element nadrzędny ma ustawienie position: relative?
Podsumowanie: pozycjonowanie w CSS
static to ustawienie domyślne. relative przesuwa element bez usuwania go z przepływu i tworzy kontekst pozycjonowania. absolute usuwa element z przepływu i pozycjonuje go względem najbliższego pozycjonowanego przodka. fixed przykleja element do viewportu. sticky przewija element, a następnie go przykleja. Używaj z-index do kontrolowania kolejności nachodzenia elementów.
Często zadawane pytania
Czy lekcja „Pozycjonowanie: relative, absolute, fixed, sticky” jest bezpłatna?
Tak — pełny tekst „Pozycjonowanie: relative, absolute, fixed, sticky” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Frontend Academy, przejdź na CoddyKit PRO. Kurs Frontend Academy zawiera 4 lekcji w sumie.
Co nauczysz się w „Pozycjonowanie: relative, absolute, fixed, sticky”?
Wyprowadzaj elementy z normalnego przepływu za pomocą wartości position, aby nakładać treść, unieruchamiać nagłówki i tworzyć przyklejone panele boczne. Ćwiczysz Frontend Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Frontend Academy?
Nie wymagamy żadnego doświadczenia. Frontend Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 4 z 4.
Ile czasu zajmuje lekcja „Pozycjonowanie: relative, absolute, fixed, sticky”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Frontend Academy?
Tak. Każda lekcja Frontend Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Selektory i kaskada
- Kolory, typografia i model pudełkowy
- Display: podstawy block, inline, flex i grid
- Pozycjonowanie: relative, absolute, fixed, sticky