Ce face position (relative, absolute, fixed, sticky)
Proprietatea position scoate elementele din fluxul normal al documentului sau le oferă un sistem de coordonate.
• relative: elementul rămâne în flux, dar poate fi deplasat cu top/left; cel mai des este folosit ca punct de ancorare pentru copiii săi cu position: absolute.
• absolute: iese complet din fluxul paginii și se poziționează milimetric în raport cu cel mai apropiat părinte care are position: relative (sau absolute/fixed).
• fixed: rămâne fixat pe ecran în același loc indiferent cât derulezi pagina (ideal pentru bare de navigație sau butoane de chat).
• sticky: hibrid între relative și fixed: derulează normal până atinge o limită (ex. top: 0), apoi se lipește de ecran.
Valori uzuale
| Valoare | Descriere |
|---|---|
static |
Implicit: urmează fluxul normal al paginii; top/left nu au efect. |
relative |
Poziționat relativ la locul său inițial; devine punct de reper pentru copiii absoluți. |
absolute |
Poziționat la coordonate fixe față de primul părinte poziționat. |
fixed |
Poziționat raportat la fereastra browserului (viewport). |
sticky |
Se lipește de ecran când atinge coordonata specificată la scroll. |
Exemple
Exemplul 1: Insignă (badge) poziționată absolut peste un card relativ
Părintele are position: relative, iar insigna are position: absolute.
.card-produs {
position: relative;
padding: 24px;
background: white;
border: 1px solid #e2e8f0;
border-radius: 8px;
}
.insigna-nou {
position: absolute;
top: 12px;
right: 12px;
background: #e34f26;
color: white;
padding: 4px 8px;
border-radius: 4px;
font-size: 0.75rem;
}
Efect vizual în browser
Insigna portocalie „NOU” stă fixată în colțul din dreapta-sus al cardului, exact la 12px de margini.
Greșeli frecvente
- Folosirea position: absolute fără a pune position: relative pe containerul părinte; elementul va zbura până în colțul ferestrei întregi a paginii (body).
- Folosirea position: sticky fără a specifica cel puțin o proprietate de poziție (cum ar fi top: 0); sticky nu funcționează dacă lipsește coordonata de declanșare.
Comenzi înrudite
top, right, bottom, left și inset: Stabilesc distanțele de deplasare pentru elementele care au position setat pe relative, absolute, fixed sau sticky.z-index: Stabilește ordinea de suprapunere a elementelor pe axa adâncimii Z (care element stă deasupra cui).display (block, inline, inline-block, none): Stabilește tipul de cutie al elementului în fluxul paginii sau îl ascunde complet din document.