Pozycjonowanie elementów w CSS
Pozycjonowanie to mechanizm, który pozwala kontrolować dokładne położenie elementów na stronie. Dzięki niemu możemy tworzyć układy, nakładać elementy na siebie, tworzyć nagłówki „przyklejone” do góry czy układy kart.
1. Właściwość position
Każdy element w CSS może mieć jedną z pięciu podstawowych wartości position:
a) static (domyślne)
- Elementy są rozmieszczane zgodnie z normalnym przepływem dokumentu.
- Właściwości
top,right,bottom,leftnie działają.
Używane zawsze, gdy nie zdefiniujemy innego pozycjonowania.
b) relative
- Element pozostaje w normalnym przepływie dokumentu, ale można go przesunąć względem swojego pierwotnego położenia (
top,left,right,bottom). - Przesunięcie nie wpływa na inne elementy – zajmują one miejsce tak, jakby element nie był przesunięty.
Często używany jako kontener odniesienia dla elementów absolutnie pozycjonowanych.
c) absolute
- Element jest usuwany z normalnego przepływu i pozycjonowany względem najbliższego przodka z
position: relative|absolute|fixed|sticky. - Jeśli nie ma takiego przodka → pozycjonowany względem całej strony (
<html>).
Przydatny w tworzeniu warstw, wysuwanych menu, tooltipów.
d) fixed
- Podobny do
absolute, ale element jest zawsze przyklejony do okna przeglądarki. - Nie przesuwa się podczas przewijania strony.
Najczęściej używane do nagłówków sticky, pasków bocznych, przycisków „scroll to top”.
e) sticky
- Łączy cechy
relativeifixed. - Element zachowuje się jak
relative, dopóki nie osiągnie określonego punktu przewijania → wtedy „przykleja się” i działa jakfixed.
Często stosowany do menu nawigacyjnych i nagłówków tabel.
2. z-index i nakładanie się elementów
a) Czym jest z-index?
- Określa kolejność nakładania się elementów (oś Z).
- Większa wartość → element jest na wierzchu.
b) Zasady działania
- Działa tylko na elementach z
positionróżnym odstatic. - Wartości mogą być dodatnie, ujemne lub 0.
- Tworzenie kontekstu stosu (stacking context) – np.
position,opacity < 1,transform,filtermogą utworzyć nowy kontekst, w którymz-indexdziała niezależnie.
3. Floats i clearfix
a) Float
float pierwotnie używany był do opływania obrazków przez tekst, a później do tworzenia całych layoutów (dziś głównie zastąpione przez flexbox i grid).
Obrazek „odpływa” do lewej strony, a tekst opływa go z prawej.
Możliwe wartości:
left– przesunięcie do lewej,right– przesunięcie do prawej,none– brak,inline-start,inline-end– wartości kierunkowe (w zależności od języka pisma).
b) Problem z floatami
Jeśli elementy są „wynoszone” z przepływu przez float, rodzic może się „zapadać” (jego wysokość nie obejmuje dzieci).
c) Clearfix
Aby rodzic „objął” elementy z float, stosuje się clearfix.
Przykład:
Dodaje ukryty element po floatujących dzieciach, który „czyści” floaty i przywraca prawidłowy przepływ.