Les top
, bottom
, left
et right
propriétés sont utilisées avec la position pour définir le placement d'un élément. Ils ont uniquement un effet sur les éléments positionnés, qui sont des éléments dont la position
propriété est définie sur autre chose que static
. Par exemple: relative
, absolute
, fixed
ou sticky
.
div ( : || || auto || inherit; )
Vous pouvez l'utiliser, par exemple, pour mettre une icône en place:
button .icon ( position: relative; top: 1px; )
Ou placez un élément spécial à l'intérieur d'un conteneur.
.container ( position: relative; ) .container header ( position: absolute; top: 0; )
La valeur de top
, bottom
, left
et right
peut être un des éléments suivants:
- l'une des longueurs valides de CSS
- un pourcentage de la hauteur (pour
top
etbottom
) ou de la largeur (pourleft
etright
) de l'élément contenant auto
inherit
L'élément s'éloignera généralement d'un côté donné lorsque sa valeur est positive, et vers lui lorsque la valeur est négative. Dans l'exemple ci-dessous, une longueur positive pour top
déplace l'élément vers le bas (loin du haut) et une longueur négative pour top
déplace l'élément vers le haut (vers le haut):
Voir le Pen
Top: valeurs positives et négatives par Matsuko Friedland (@missmatsuko)
sur CodePen.
Positionner
Le placement d'un élément avec une valeur top
, bottom
, left
ou right
dépend de sa valeur position
. Jetons un coup d'œil à ce qui se passe lorsque nous définissons la même valeur pour top
sur des éléments avec des valeurs différentes pour position
.
static
La top
propriété n'a aucun effet sur les éléments non positionnés (éléments position
définis sur static
). C'est ainsi que les éléments sont positionnés par défaut. Vous pouvez utiliser position: static;
comme une méthode pour annuler l'effet de top
sur un élément.
relative
Lorsque top
est défini sur un élément position
défini sur relative
, l'élément se déplace vers le haut ou vers le bas par rapport à son emplacement d'origine dans le document.
Voir Pen
Top: relatif par Matsuko Friedland (@missmatsuko)
sur CodePen.
absolute
Lorsque top
est défini sur un élément position
défini sur absolute
, l'élément se déplacera vers le haut ou vers le bas par rapport à son ancêtre positionné le plus proche (ou au document, s'il n'y a pas d'ancêtres positionnés).
Dans cette démo, la boîte rose sur la gauche est positionnée à 50 pixels du haut de la page car elle n'a aucun élément ancêtre positionné. La boîte rose sur la droite est positionnée à 50 px du haut de son parent, car le parent a un position
of relative
.
Voir le Pen
Top: absolu de Matsuko Friedland (@missmatsuko)
sur CodePen.
fixed
Lorsque top
est défini sur un élément position
défini sur fixed
, l'élément se déplacera vers le haut ou le bas par rapport à la fenêtre du navigateur.
Voir Pen
Top: corrigé par CSS-Tricks (@ css-tricks)
sur CodePen.
À première vue, il peut sembler qu'il n'y a pas de différence entre absolute
et fixed
. La différence peut être vue lorsque vous les comparez sur une page qui a suffisamment de contenu pour faire défiler. Lorsque vous faites défiler vers le bas, l' fixed
élément de position est toujours visible, tandis que l' absolute
élément de position défile.
Voir le
défilement du stylet : fixe vs absolu par CSS-Tricks (@ css-tricks)
sur CodePen.
sticky
Lorsque top
est défini sur un élément position
défini sur sticky
, l'élément se déplacera vers le haut ou vers le bas par rapport à l'ancêtre le plus proche avec une boîte de défilement (ou la fenêtre, si aucun ancêtre n'a de boîte de défilement), limité aux limites de son élément contenant.
La définition top
sur un sticky
élément positionné ne fait pas grand-chose à moins que son conteneur ne soit plus grand qu'il ne l'est et que vous ayez suffisamment de contenu pour faire défiler. Comme avec fixed
, l'élément restera visible lorsque vous faites défiler. À la différence fixed
, l'élément tombera hors de vue une fois qu'il atteindra les bords de son élément conteneur.
Voir le
défilement du stylet : corrigé ou collant par CSS-Tricks (@ css-tricks)
sur CodePen.
Gotchas
Réglage des côtés opposés
Vous pouvez définir une valeur pour chacun top
, bottom
, left
et right
sur un seul élément. Lorsque vous définissez des valeurs pour les côtés opposés ( top
et bottom
, ou left
et right
), le résultat peut ne pas toujours être celui que vous attendez.
Dans la plupart des cas, bottom
est ignoré si top
est déjà défini et right
est ignoré si left
est déjà défini. Lorsque la direction est définie sur rtl
(de droite à gauche), left
est ignoré à la place de right
. Pour que chaque valeur ait un effet, l'élément doit être position
défini sur absolute
ou fixed
et height
défini sur auto
(par défaut).
Dans cet exemple, nous avons mis top
, bottom
, left
et right
à `20px`, et nous attendons de chaque côté de la boîte intérieure pour être 20px loin des côtés de la boîte extérieure:
Voir le
réglage du stylet en haut, en bas, à gauche et à droite par CSS-Tricks (@ css-tricks)
sur CodePen.
Lorsqu'il est fixe n'est pas relatif à la fenêtre
Les éléments position
définis sur fixed
ne sont pas toujours positionnés par rapport à la fenêtre. Il sera positionné par rapport à son ancêtre le plus proche avec un transform
, perspective
ou filter
ensemble de biens à autre chose que none
, le cas échéant.
Ajouter ou supprimer de l'espace
Si vous avez positionné un élément et constaté qu'il y a maintenant un espace vide ou pas assez d'espace là où vous vous attendiez, cela peut avoir à voir avec si l'élément est dans ou hors du flux du document.
Lorsqu'un élément est retiré du flux du document, cela signifie que l'espace qu'il occupait à l'origine sur la page disparaît. C'est le cas lorsqu'un élément est positionné absolute
ou fixed
. Dans cet exemple, la boîte contenant de l'élément positionné de manière absolue s'est réduite car l'élément positionné de manière absolue a été supprimé du flux du document:
Voir le
flux de documents Pen par Matsuko Friedland (@missmatsuko)
sur CodePen.
Prise en charge du navigateur
Vous pouvez jeter un coup d'œil, mais il n'y a pas de problèmes entre navigateurs pour la top
propriété. Utiliser à volonté.