De top
, bottom
, left
și right
proprietăți sunt utilizate cu poziția de a stabili plasarea unui element. Ele au un efect doar asupra elementelor poziționate, care sunt elemente cu position
proprietatea setată la altceva decât static
. De exemplu: relative
, absolute
, fixed
sau sticky
.
div ( : || || auto || inherit; )
S-ar putea să-l utilizați, de exemplu, pentru a împinge o pictogramă în loc:
button .icon ( position: relative; top: 1px; )
Sau poziționați un element special în interiorul unui container.
.container ( position: relative; ) .container header ( position: absolute; top: 0; )
Valoarea pentru top
, bottom
, left
, și right
poate fi oricare dintre următoarele:
- oricare dintre lungimile valide ale CSS
- un procent din înălțimea elementului care conține (pentru
top
șibottom
) sau lățimea (pentruleft
șiright
) auto
inherit
Elementul se va îndepărta, în general, de o anumită latură atunci când valoarea sa este pozitivă și spre el când valoarea este negativă. În exemplul de mai jos, o lungime pozitivă pentru top
mută elementul în jos (departe de partea de sus) și o lungime negativă pentru top
va muta elementul în sus (spre partea de sus):
Vedeți Pen
Top: valori pozitive și negative de Matsuko Friedland (@missmatsuko)
pe CodePen.
Poziţie
Plasarea unui element cu o valoare pentru top
, bottom
, left
sau right
depinde de valoarea sa pentru position
. Să aruncăm o privire la ce se întâmplă atunci când stabilim aceeași valoare pentru top
elemente cu valori diferite pentru position
.
static
top
Proprietatea nu are nici un efect asupra elementelor unpositioned (elemente cu position
set pentru a static
). Acesta este modul în care elementele sunt poziționate în mod implicit. Puteți utiliza position: static;
ca metodă pentru a anula efectul top
asupra unui element.
relative
Când top
este setat pe un element cu position
setat la relative
, elementul se va deplasa în sus sau în jos în raport cu plasarea sa originală în document.
Vezi Pen
Top: relative de Matsuko Friedland (@missmatsuko)
pe CodePen.
absolute
Când top
este setat pe un element cu position
setat la absolute
, elementul se va deplasa în sus sau în jos în raport cu cel mai apropiat strămoș poziționat (sau documentul, dacă nu există strămoși poziționați).
În această demonstrație, caseta roz din stânga este poziționată la 50 px în jos din partea de sus a paginii, deoarece nu are elemente strămoșe poziționate. Caseta roz de pe dreapta este poziționat 50px jos din partea de sus a societății - mamă, deoarece părintele are position
de relative
.
Vezi Pen
Top: absolute de Matsuko Friedland (@missmatsuko)
pe CodePen.
fixed
Când top
este setat pe un element cu position
setat la fixed
, elementul se va deplasa în sus sau în jos în raport cu ecranul browserului.
Vedeți Pen
Top: fixat de CSS-Tricks (@ css-tricks)
pe CodePen.
La prima vedere, poate părea că nu există o diferență între absolute
și fixed
. Diferența poate fi văzută atunci când le comparați pe o pagină care are suficient conținut pentru a derula. Pe măsură ce derulați în jos, fixed
elementul de poziție este întotdeauna vizibil, în timp ce absolute
elementul de poziție derulează.
Vedeți
Defilarea stiloului : fix vs. absolut de CSS-Tricks (@ css-tricks)
pe CodePen.
sticky
Când top
este setat pe un element cu position
setat la sticky
, elementul se va deplasa în sus sau în jos în raport cu cel mai apropiat strămoș cu o casetă de derulare (sau fereastra, dacă niciun strămoș nu are o casetă de derulare), limitată la limitele elementului său de conținut.
Setarea top
pe un sticky
element poziționat nu face mult decât dacă containerul său este mai înalt decât este și aveți suficient conținut pentru a derula. Ca și în cazul în care fixed
, elementul va rămâne vizibil pe măsură ce derulați. Spre deosebire de faptul fixed
că elementul va cădea din vizibilitate odată ce va ajunge la marginile elementului său conținător.
Vedeți
Scrolling Pen : fix vs. sticky de CSS-Tricks (@ css-tricks)
pe CodePen.
Gotchas
Setarea laturilor opuse
Puteți seta o valoare pentru fiecare top
, bottom
, left
, și right
pe un singur element. Atunci când setați valori pentru părți opuse ( top
și bottom
, sau left
și right
), rezultatul ar putea să nu fie întotdeauna ceea ce vă așteptați.
În majoritatea cazurilor, bottom
este ignorat dacă top
este deja setat și right
este ignorat dacă left
este deja setat. Când direcția este setată la rtl
(de la dreapta la stânga), left
este ignorată în loc de right
. Pentru ca fiecare valoare să aibă un efect, elementul trebuie să aibă un position
set la absolute
sau fixed
și height
setat la auto
(implicit).
În acest exemplu, ne - am stabilit top
, bottom
, left
și right
pentru a `20px`, și se așteaptă ca fiecare parte a cutiei interioare să fie 20px departe de părțile laterale ale cutiei exterioare:
Vedeți
Setarea stiloului sus, jos, stânga și dreapta de CSS-Tricks (@ css-tricks)
pe CodePen.
Când este remediat nu este relativ la fereastra de vizualizare
Elementele cu position
setat la fixed
nu sunt întotdeauna poziționate în raport cu fereastra de vizualizare. Acesta va fi poziționat în raport cu strămoșul său cel mai apropiat cu transform
, perspective
sau filter
set de proprietăți la altceva decât none
, dacă există.
Adăugarea sau eliminarea spațiului
Dacă ați poziționat un element și ați descoperit că acum există un spațiu gol sau nu există suficient spațiu în locul în care vă așteptați, s-ar putea să aibă legătură cu dacă elementul se află în sau din fluxul documentului.
Când un element este scos din fluxul documentului, înseamnă că spațiul pe care l-a ocupat inițial pe pagină dispare. Acesta este cazul când un element este poziționat absolute
sau fixed
. În acest exemplu, caseta care conține elementul poziționat absolut s-a prăbușit deoarece elementul poziționat absolut a fost eliminat din fluxul documentului:
Vedeți
fluxul de documente Pen de Matsuko Friedland (@missmatsuko)
pe CodePen.
Suport pentru browser
Puteți să aruncați o privire, dar nu există probleme legate de browser pentru top
proprietate. Folosiți după bunul plac.