position
Nieruchomość może pomóc manipulować lokalizację elementu, na przykład:
.element ( position: relative; top: 20px; )
Względem pierwotnego położenia powyższy element zostanie teraz przesunięty w dół o 20 pikseli w dół. Gdybyśmy mieli animować te właściwości, moglibyśmy zobaczyć, jak dużą kontrolę daje nam to (chociaż nie jest to dobry pomysł ze względu na wydajność):
relative
jest tylko jedną z sześciu wartości position
właściwości. Oto inni:
Wartości
static
: każdy element ma domyślnie pozycję statyczną, więc element będzie trzymał się normalnego przepływu strony. Więc jeśli istnieje zestaw lewy / prawy / górny / dolny / z-indeks, nie będzie to miało wpływu na ten element.relative
: oryginalna pozycja elementu pozostaje w przepływie dokumentu, podobnie jakstatic
wartość. Ale teraz lewy / prawy / górny / dolny / z-index będzie działać. Właściwości pozycyjne „przesuwają” element z pierwotnego położenia w tym kierunku.absolute
: element jest usuwany z przepływu dokumentu, a inne elementy będą zachowywać się tak, jakby go tam nie było, podczas gdy wszystkie inne właściwości pozycyjne będą na nim działać.fixed
: element jest usuwany z przepływu dokumentu jak elementy pozycjonowane bezwzględnie. W rzeczywistości zachowują się prawie tak samo, tylko elementy o stałej pozycji odnoszą się zawsze do dokumentu, a nie do żadnego konkretnego elementu nadrzędnego i przewijanie nie ma na nie wpływu.sticky
(eksperymentalnie): element jest traktowany jakrelative
wartość, dopóki położenie przewijania widoku ekranu nie osiągnie określonego progu, w którym to momencie element przyjmujefixed
pozycję, w której ma się trzymać.inherit
:position
wartość nie jest kaskadowa, więc można jej użyć do wymuszenia, ainherit
wartość pozycjonowania pochodzi od jej elementu nadrzędnego.
Absolutny
Jeśli element potomny ma absolute
wartość, element nadrzędny będzie zachowywał się tak, jakby w ogóle nie było dziecka:
.element ( position: absolute; )
A kiedy staramy się ustawić inne wartości, takie jak left
, bottom
i right
dowiemy, że element dziecko nie odpowiada wymiarom jego rodzica, ale dokument:
.element ( position: absolute; left: 0; right: 0; bottom: 0; )
Aby element potomny był pozycjonowany absolutnie względem elementu nadrzędnego, musimy ustawić to na samym elemencie nadrzędnym:
.parent ( position: relative; )
Teraz właściwości, takie jak left
, right
, bottom
i top
będzie odnosić się do elementu nadrzędnego, tak, że jeśli wykonujemy element dziecko przejrzysty widzimy, że siedzi tuż przy dnie rodzica:
Naprawiony
fixed
Wartość jest zbliżona do absolute
jak może pomóc ustawić element w dowolnym miejscu w stosunku do dokumentu, jednak wartość ta nie ma wpływu przewijania. Zobacz element podrzędny w poniższym demo i zobacz, jak po przewinięciu nadal przykleja się do dołu strony:
Te dane dotyczące obsługi przeglądarek pochodzą od Caniuse, który zawiera więcej szczegółów. Liczba wskazuje, że przeglądarka obsługuje tę funkcję w tej wersji i nowszych.
Pulpit
Chrom | Firefox | TO ZNACZY | Brzeg | Safari |
---|---|---|---|---|
4 | 2 | 7 | 12 | 3.1 |
Telefon komórkowy / tablet
Android Chrome | Android Firefox | Android | iOS Safari |
---|---|---|---|
88 | 85 | 3 | 8 |
Lepki
sticky
Wartość jest jak kompromisu pomiędzy relative
i fixed
wartości. W chwili pisania tego tekstu jest to obecnie wartość eksperymentalna, co oznacza, że nie jest częścią oficjalnej specyfikacji i tylko częściowo przyjęta przez wybrane przeglądarki. Innymi słowy, prawdopodobnie nie jest najlepszym pomysłem używanie tego w witrynie produkcyjnej na żywo.
Co to robi? Cóż, pozwala na pozycjonowanie elementu względem czegokolwiek w dokumencie, a następnie, gdy użytkownik przewinie się poza określony punkt w rzutni, ustal pozycję elementu w tym miejscu, aby pozostał on stale wyświetlany jak element z fixed
wartość.
Weźmy następujący przykład:
.element ( position: sticky; top: 50px; )
Element zostanie umieszczony względnie, dopóki położenie przewijania rzutni nie osiągnie punktu, w którym element będzie się znajdował 50px
z góry rzutni. W tym punkcie, element staje się lepka i pozostaje w fixed
położeniu 50px
górze ekranu.
Poniższe demo ilustruje ten punkt, w którym górna nawigacja jest domyślnym relative
pozycjonowaniem, a druga nawigacja jest ustawiona sticky
na samej górze widoku. Pamiętaj, że wersja demonstracyjna będzie działać tylko w przeglądarce Chrome, Safari i Opera w momencie pisania tego tekstu.
Te dane dotyczące obsługi przeglądarek pochodzą od Caniuse, który zawiera więcej szczegółów. Liczba wskazuje, że przeglądarka obsługuje tę funkcję w tej wersji i nowszych.
Pulpit
Chrom | Firefox | TO ZNACZY | Brzeg | Safari |
---|---|---|---|---|
91 | 59 | Nie | 88 | 7,1 * |
Telefon komórkowy / tablet
Android Chrome | Android Firefox | Android | iOS Safari |
---|---|---|---|
88 | 85 | 81 | 8 * |