Na top
, bottom
, left
i right
właściwości są wykorzystywane stanie ustalić położenie elementu. Mają wpływ tylko na pozycjonowane elementy, które są elementami z position
właściwością ustawioną na cokolwiek innego niż static
. Na przykład: relative
, absolute
, fixed
, lub sticky
.
div ( : || || auto || inherit; )
Możesz go użyć na przykład do przesunięcia ikony na miejsce:
button .icon ( position: relative; top: 1px; )
Lub umieść specjalny element w pojemniku.
.container ( position: relative; ) .container header ( position: absolute; top: 0; )
Wartość top
, bottom
, left
, i right
może być dowolna z poniższych sytuacji:
- dowolna z prawidłowych długości CSS
- procent wysokości elementu zawierającego (dla
top
ibottom
) lub szerokości (dlaleft
iright
) auto
inherit
Element będzie na ogół odsuwał się od danej strony, gdy jego wartość jest dodatnia, i do niej, gdy wartość jest ujemna. W poniższym przykładzie dodatnia długość top
przesuwa element w dół (od góry), a ujemna długość top
przesuwa element w górę (w górę):
Zobacz Pen
Top: wartości dodatnie i ujemne autorstwa Matsuko Friedlanda (@missmatsuko)
na CodePen.
Pozycja
Umieszczenie elementu z wartością top
, bottom
, left
, lub right
zależy cena position
. Przyjrzyjmy się, co się stanie, gdy ustawimy tę samą wartość dla top
elementów z różnymi wartościami dla position
.
static
top
Nieruchomość nie ma wpływu na elementy unpositioned (elementy z position
zestawu do static
). W ten sposób elementy są domyślnie pozycjonowane. Możesz użyć position: static;
jako jednej metody, aby cofnąć efekt top
na elemencie.
relative
Gdy top
jest ustawiony na elemencie z position
ustawieniem na relative
, element przesunie się w górę lub w dół w stosunku do jego pierwotnego położenia w dokumencie.
Zobacz Pen
Top: krewny Matsuko Friedlanda (@missmatsuko)
na CodePen.
absolute
Gdy top
jest ustawiony na elemencie z position
ustawieniem na absolute
, element przesunie się w górę lub w dół w stosunku do swojego najbliższego przodka (lub dokumentu, jeśli nie ma żadnych przodków).
W tym pokazie różowe pole po lewej stronie jest umieszczone 50 pikseli w dół od góry strony, ponieważ nie ma umieszczonych elementów nadrzędnych. Różowe pole po prawej stronie jest umieszczone 50 pikseli w dół od góry swojego rodzica, ponieważ rodzic ma position
of relative
.
Zobacz Pen
Top: Absolut autorstwa Matsuko Friedlanda (@missmatsuko)
na CodePen.
fixed
Gdy top
jest ustawiony na elemencie z position
ustawieniem na fixed
, element przesunie się w górę lub w dół w stosunku do rzutni przeglądarki.
Zobacz Pen
Top: naprawione przez CSS-Tricks (@ css-tricks)
w CodePen.
Na pierwszy rzut oka może się wydawać, że nie ma różnicy między absolute
i fixed
. Różnicę można zauważyć, porównując je na stronie, której zawartość można przewijać. Podczas przewijania w dół fixed
element pozycji jest zawsze widoczny, a absolute
element pozycji jest przewijany.
Zobacz
przewijanie piórem : naprawione vs. bezwzględne przez CSS-Tricks (@ css-tricks)
w CodePen.
sticky
Gdy top
jest ustawiony na elemencie z position
ustawieniem na sticky
, element przesunie się w górę lub w dół w stosunku do najbliższego przodka z przewijanym polem (lub rzutnią, jeśli żaden przodek nie ma przewijanego pola), ograniczony do granic elementu zawierającego go.
Ustawienie top
na sticky
elementu pozycjonowanego nie robi wiele, chyba że pojemnik jest wyższy, niż jest, i masz wystarczająco dużo treści do przewijania. Podobnie jak w przypadku fixed
, element pozostanie widoczny podczas przewijania. W przeciwieństwie do fixed
tego element zniknie z widoku, gdy dotrze do krawędzi elementu zawierającego go.
Zobacz
przewijanie piórem : naprawione vs. lepkie przez CSS-Tricks (@ css-tricks)
w CodePen.
Gotchas
Ustawienie przeciwnych stron
Można ustawić wartość dla każdego top
, bottom
, left
i right
na jednym elemencie. Po ustawieniu wartości dla przeciwnych stron ( top
i bottom
, lub left
i right
) wynik może nie zawsze być taki, jakiego oczekujesz.
W większości przypadków bottom
jest ignorowane, jeśli top
jest już ustawione, i right
jest ignorowane, jeśli left
jest już ustawione. Gdy kierunek jest ustawiony na rtl
(od prawej do lewej), left
jest ignorowany zamiast right
. Aby każda wartość miała wpływ, element musi mieć position
ustawioną wartość absolute
lub fixed
i height
ustawioną na auto
(domyślnie).
W tym przykładzie, zestaw top
, bottom
, left
i right
na `20px` i od każdego boku pudełka wewnętrznego 20 pikseli być oddalony od boków pudełka zewnętrznego:
Zobacz ustawienia pióra u
góry, u dołu, po lewej i po prawej stronie CSS-Tricks (@ css-tricks)
w CodePen.
Gdy naprawiono, nie jest zależne od rzutni
Elementy z position
ustawieniem na fixed
nie zawsze są ustawione w stosunku do rzutni. Zostanie ona umieszczona w stosunku do swojego najbliższego przodka z transform
, perspective
lub filter
zestawu właściwości do niczego innego niż none
, jeśli taki istnieje.
Dodawanie lub usuwanie miejsca
Jeśli umieściłeś element i odkryłeś, że jest teraz puste miejsce lub za mało miejsca tam, gdzie się spodziewałeś, może to mieć związek z tym, czy element znajduje się w przepływie dokumentu, czy poza nim.
Usunięcie elementu z obiegu dokumentu oznacza, że miejsce, które pierwotnie zajmował na stronie, znika. Dzieje się tak, gdy element jest pozycjonowany absolute
lub fixed
. W tym przykładzie pole zawierające element pozycjonowany absolutnie zostało zwinięte, ponieważ element pozycjonowany absolutnie został usunięty z przepływu dokumentu:
Zobacz
przepływ dokumentów pióra autorstwa Matsuko Friedlanda (@missmatsuko)
na CodePen.
Wsparcie przeglądarki
Możesz rzucić okiem, ale nie ma problemów z różnymi przeglądarkami dotyczącymi tej usługi top
. Używaj do woli.