Junior
Milline on erinevus CSS-is elementide positsioneerimise erinevate meetodite vahel?
sobes.tech AI
Vastus AI-lt
static- Vaikimisi asukoht. Element positsioneerub vastavalt dokumendi standardvoogule. Omadusedtop,right,bottom,leftei mõjuta.relative- Element positsioneerub suhteliselt oma normaalse asukoha suhtes voos. Omadusedtop,right,bottom,leftnihutavad seda algsest asukohast, kuid hõivatud koht voos jääb alles.absolute- Element eemaldatakse täielikult dokumendi normaalsest voost. Selle asukoht määratakse omadustegatop,right,bottom,leftkõige lähemale positsioneeritud vanemaga (millega onposition: relative,absolute,fixedvõisticky). Kui selliseid vanemaid pole, määratakse asukoht<html>algbloki suhtes.fixed- Element eemaldatakse täielikult dokumendi normaalsest voost. Selle asukoht määratakse omadustegatop,right,bottom,leftvaadetes (viewport). Element jääb paigale lehe kerimisel.sticky- Element positsioneerub nagurelative, kuni kerimisel see jõuab määratud asukohani (top,right,bottom,left), pärast mida muutub selle asukohtfixed-ks.
Tabel erinevustest:
| Omadus | static |
relative |
absolute |
fixed |
sticky |
|---|---|---|---|---|---|
| Dokumendi voog | Tavaline | Säilitab | Eemaldub | Eemaldub | Alguses tavaline, siis eemaldub |
Nihutamine (top jms) |
Ei | Suhteline iseendale | Suhteline vanemale/vaatesse | Suhteline vaatesse | Suhteline iseendale, siis vaatesse |
| Kerimisel | Kerib | Kerib | Jääb kohale (kui vanem fixed) või kerib koos vanemaga |
Jääb kohale | Alguses kerib, siis jääb kohale |
Näide:
.static-box {
position: static; /* Vaikimisi asukoht */
width: 100px;
height: 100px;
background-color: lightblue;
}
.relative-box {
position: relative;
top: 20px; /* Nihutamine ülespoole normaalsest asukohast */
left: 20px; /* Nihutamine paremale normaalsest asukohast */
width: 100px;
height: 100px;
background-color: lightgreen;
}
.absolute-container {
position: relative; /* Vanem, mis positsioneerub */
width: 300px;
height: 300px;
border: 1px solid black;
}
.absolute-box {
position: absolute;
top: 50px; /* Seotud konteinerile */
left: 50px; /* Seotud konteinerile */
width: 50px;
height: 50px;
background-color: lightcoral;
}
.fixed-box {
position: fixed;
bottom: 10px; /* Vaatesse (viewport) suhtes */
right: 10px; /* Vaatesse (viewport) suhtes */
width: 70px;
height: 70px;
background-color: lightsalmon;
}
.sticky-header {
position: sticky;
top: 0; /* Kleepub vaatesse (viewport) ülaossa */
height: 50px;
background-color: lightgoldenrodyellow;
z-index: 10; /* Peetakse teiste elementide peal, kui kleebitud */
}