De top
, bottom
, left
en right
eigenschappen worden gebruikt staat de plaatsing van een element ingesteld. Ze hebben alleen effect op geplaatste elementen, dit zijn elementen waarvan de position
eigenschap op iets anders is ingesteld dan static
. Bijvoorbeeld: relative
, absolute
, fixed
, of sticky
.
div ( : || || auto || inherit; )
U kunt het bijvoorbeeld gebruiken om een pictogram op zijn plaats te duwen:
button .icon ( position: relative; top: 1px; )
Of plaats een speciaal element in een container.
.container ( position: relative; ) .container header ( position: absolute; top: 0; )
De waarde voor top
` bottom
` left
, en right
kan een van de volgende zijn:
- een van de geldige lengtes van CSS
- een percentage van de hoogte van het bevattende element (voor
top
enbottom
) of breedte (voorleft
enright
) auto
inherit
Het element zal over het algemeen van een bepaalde kant weggaan als de waarde positief is, en er naar toe als de waarde negatief is. In het onderstaande voorbeeld zal een positieve lengte voor top
het element naar beneden verplaatsen (weg van de bovenkant) en een negatieve lengte voor top
zal het element naar boven verplaatsen (naar boven):
Zie de Pen
Top: positieve en negatieve waarden door Matsuko Friedland (@missmatsuko)
op CodePen.
Positie
Het plaatsen van een element met een waarde van top
, bottom
, left
of right
afhankelijk van de waarde position
. Laten we eens kijken wat er gebeurt als we dezelfde waarde instellen voor top
elementen met verschillende waarden voor position
.
static
De top
eigenschap heeft geen effect op niet-geplaatste elementen (elementen met position
ingesteld op static
). Dit is hoe elementen standaard worden gepositioneerd. Je zou position: static;
als een methode kunnen gebruiken om het effect van top
op een element ongedaan te maken .
relative
Wanneer top
op een element is ingesteld met position
ingesteld op relative
, zal het element omhoog of omlaag bewegen ten opzichte van zijn oorspronkelijke plaatsing in het document.
Zie de Pen
Top: relatief door Matsuko Friedland (@missmatsuko)
op CodePen.
absolute
Wanneer top
is ingesteld op een element met position
ingesteld op absolute
, zal het element omhoog of omlaag bewegen ten opzichte van de dichtstbijzijnde gepositioneerde voorouder (of het document, als er geen gepositioneerde voorouders zijn).
In deze demo is het roze vak aan de linkerkant 50 px lager dan de bovenkant van de pagina geplaatst omdat het geen gepositioneerde voorouderelementen heeft. Het roze vak aan de rechterkant is 50 px naar beneden vanaf de bovenkant van de ouder geplaatst, omdat de ouder een position
van heeft relative
.
Zie de Pen
Top: absoluut door Matsuko Friedland (@missmatsuko)
op CodePen.
fixed
Wanneer top
is ingesteld op een element met position
ingesteld op fixed
, zal het element omhoog of omlaag bewegen ten opzichte van de viewport van de browser.
Zie de Pen
Top: opgelost door CSS-Tricks (@ css-tricks)
op CodePen.
Op het eerste gezicht lijkt het alsof er geen verschil is tussen absolute
en fixed
. Het verschil is te zien wanneer u ze vergelijkt op een pagina met voldoende inhoud om te scrollen. Terwijl u naar beneden scrolt, is het fixed
positie-element altijd in beeld, terwijl het absolute
positie-element wegschuift.
Zie Pen
scrollen: vast versus absoluut door CSS-Tricks (@ css-tricks)
op CodePen.
sticky
Wanneer top
is ingesteld op een element met position
ingesteld op sticky
, zal het element omhoog of omlaag bewegen ten opzichte van de dichtstbijzijnde voorouder met een schuifvak (of de viewport, als geen voorouder een schuifbalk heeft), beperkt tot de grenzen van het bevattende element.
Instellen top
op een sticky
gepositioneerd element doet niet veel, tenzij de container groter is dan het is en je voldoende inhoud hebt om te scrollen. Net als bij fixed
, blijft het element in beeld terwijl u scrolt. In tegenstelling tot fixed
, zal het element uit het zicht vallen zodra het de randen van het bevattende element bereikt.
Zie Pen
scrollen: opgelost versus plakkerig door CSS-Tricks (@ css-tricks)
op CodePen.
Gotchas
Tegengestelde kanten instellen
U kunt een waarde voor elk van de set top
, bottom
, left
, en right
op een enkel element. Als u waarden instelt voor tegenoverliggende zijden ( top
en bottom
, of left
en right
), is het resultaat mogelijk niet altijd wat u verwacht.
In de meeste gevallen bottom
wordt genegeerd als deze top
al is ingesteld en right
wordt genegeerd als deze left
al is ingesteld. Als de richting is ingesteld op rtl
(rechts naar links), left
wordt dit genegeerd in plaats van right
. Om ervoor te zorgen dat elke waarde een effect heeft, moet het element zijn position
ingesteld op absolute
of fixed
en height
ingesteld op auto
(standaard).
In dit voorbeeld hebben we besloten top
, bottom
, left
en right
op `20px` en verwacht elke zijde van de binnendoos 20 pixels weg te zijn van de zijden van de buitendoos:
Zie de peninstelling
boven, onder, links en rechts door CSS-Tricks (@ css-tricks)
op CodePen.
Wanneer gefixeerd, is dit niet relatief ten opzichte van de viewport
Elementen met position
ingesteld op fixed
zijn niet altijd gepositioneerd ten opzichte van de viewport. Het zal met betrekking tot de dichtstbijzijnde voorouder met zijn gepositioneerd transform
, perspective
of filter
eigenschappenset iets anders dan none
, indien aanwezig.
Ruimte toevoegen of verwijderen
Als je een element hebt geplaatst en ontdekt dat er nu een lege ruimte is of niet genoeg ruimte op de plaats waar je had verwacht, kan het zijn dat het te maken heeft met het feit of het element zich in of uit de documentstroom bevindt.
Wanneer een element uit de documentstroom wordt gehaald, betekent dit dat de ruimte die het oorspronkelijk op de pagina innam, verdwijnt. Dit is het geval wanneer een element is gepositioneerd absolute
of fixed
. In dit voorbeeld is de container met het absoluut gepositioneerde element ingestort omdat het absoluut gepositioneerde element uit de documentstroom is verwijderd:
Zie de Pen-
documentstroom door Matsuko Friedland (@missmatsuko)
op CodePen.
Browser-ondersteuning
U kunt een kijkje nemen, maar u hoeft zich geen zorgen te maken over de verschillende browsers voor de top
accommodatie. Gebruik naar believen.