Flyt
Last updated
Last updated
CSS-egenskapen display
sier noe om hvordan et element skal legge seg i flyten på siden. Med flyten mener vi rekkefølgen på elementene i leseretning, fra øverst i venstre hjørne til nederst i høyre hjørne. Hvis man ikke definerer noe annet vil to sekvensielle HTML-elementer legge seg i den rekkefølgen de er definert i HTML-strukturen.
Nederst i delen om HTML-elementer beskrev vi hvordan block- og inline-elementer oppfører seg. De forskjellige HTML-elementene har alle forskjellig default-verdi for display
, som man kan se i følgende CodePen (Klikk "Run pen"):
Med text-align
kan vi velge om tekst skal være venstre-, midt- eller høyrejustert innenfor et block-element (klikk på CSS-fanen for å se stylingen som appliseres):
div
er et block-element og teksten blir midtstilt, men siden span
er et inline-element kan vi ikke posisjonere tekst innenfor elementet, det har rett og slett ikke noe ledig rom rundt seg det kan plassere seg relativt til.
Hvis vi vil midtstille et element innenfor sitt forelder-element kan vi bruke automatisk margin
til høyre og venstre for elementet, sammen med en forhåndsdefinert bredde, slik at nettleseren kan regne seg frem til hvor mye plass marginen kan ha:
Tips!
Som dere snart vil finne ut, er det flere egenskaper som bare fungerer på block- eller inline-block-elementer. Dette gjelder både text-align
, som forklart over, i tillegg til margin
over og under et element. Dette kan være en kilde til vanskelig debugging når stilene våre tilsynelatende ikke treffer. Heldigivs pleier DevTools i nettleseren å vise oss hvilke stiler som ikke fungerer fordi de vises som ugyldige i Styles-panelet når vi inspiserer koden vår.
Åpne følgende codepen ved å trykke på "Edit on CodePen" øverst i høyre hjørne:
Elementene har statisk posisjon. Det betyr at de plasseres slik de ligger i HTMLen og ikke blir påvirket av posisjonsegenskapene top
, right
, left
, bottom
og z-index
.
Endre element B til å ha position: relative
. Relativ posisjon betyr at elementet ligger på sin statiske posisjon, men at endringer i posisjonsegenskapene vil få elementet til å flytte seg relativt til sin egen posisjon. Sett verdiene top
og left
for element B til å være 15px. Ser du noen forskjell? Legg merke til at C ikke flytter på seg. Den opprinnelige avholdte plassen til B er den samme som før.
Endre nå element B til å ha position: absolute
. Hvor ble elementet av? Med absolutt posisjon vil elementet forholde seg til posisjonsegenskapene top
, left
osv innenfor nærmeste posisjonerte forelder - eller rotelementet. Med absolutt posisjon blir det ikke holdt av plass til element B mellom A og C.
Se på article
-elementet som ligger rundt A, B og C. Gi den position: relative
. Hvor ble nå B av? Nå som article
er posisjonert vil B forholde seg til den i stedet for rotelementet.