La position
propriété peut vous aider à manipuler l'emplacement d'un élément, par exemple:
.element ( position: relative; top: 20px; )
Par rapport à sa position d'origine, l'élément ci-dessus sera maintenant poussé vers le bas de 20 pixels depuis le haut. Si nous devions animer ces propriétés, nous pouvons voir à quel point cela nous donne le contrôle (bien que ce ne soit pas une bonne idée pour des raisons de performances):
relative
n'est que l'une des six valeurs de la position
propriété. Voici les autres:
Valeurs
static
: chaque élément a une position statique par défaut, donc l'élément restera fidèle au flux de page normal. Donc, s'il y a un ensemble d'index gauche / droite / haut / bas / z, il n'y aura aucun effet sur cet élément.relative
: la position d'origine d'un élément reste dans le flux du document, tout comme lastatic
valeur. Mais maintenant, gauche / droite / haut / bas / z-index fonctionnera. Les propriétés de position «décalent» l'élément de sa position d'origine dans cette direction.absolute
: l'élément est supprimé du flux du document et les autres éléments se comportent comme s'il n'était même pas là alors que toutes les autres propriétés positionnelles fonctionneront dessus.fixed
: l'élément est retiré du flux du document comme des éléments absolument positionnés. En fait, ils se comportent presque de la même manière, seuls les éléments positionnés fixes sont toujours relatifs au document, pas à un parent en particulier, et ne sont pas affectés par le défilement.sticky
(expérimental): l'élément est traité comme unerelative
valeur jusqu'à ce que l'emplacement de défilement de la fenêtre atteigne un seuil spécifié, auquel point l'élément prend unefixed
position où il est dit de rester.inherit
: laposition
valeur n'est pas en cascade, donc cela peut être utilisé pour le forcer spécifiquement, etinherit
la valeur de positionnement de son parent.
Absolu
Si un élément enfant a une absolute
valeur, l'élément parent se comportera comme si l'enfant n'était pas du tout là:
.element ( position: absolute; )
Et lorsque nous essayons de définir d'autres valeurs telles que left
,, bottom
et right
nous constaterons que l'élément enfant ne répond pas aux dimensions de son parent, mais au document:
.element ( position: absolute; left: 0; right: 0; bottom: 0; )
Pour que l'élément enfant soit positionné de manière absolue à partir de son élément parent, nous devons le définir sur l'élément parent lui-même:
.parent ( position: relative; )
Propriétés telles que maintenant left
, right
, bottom
et top
fera référence à l'élément parent, de sorte que si nous pouvons voir que nous faisons l'élément enfant transparent , il est assis juste en bas du parent:
Fixé
La fixed
valeur est similaire à absolute
car elle peut vous aider à positionner un élément n'importe où par rapport au document, mais cette valeur n'est pas affectée par le défilement. Voir l'élément enfant dans la démo ci-dessous et comment, une fois que vous faites défiler, il continue de coller au bas de la page:
Ces données de support de navigateur proviennent de Caniuse, qui contient plus de détails. Un nombre indique que le navigateur prend en charge la fonctionnalité dans cette version et plus.
Bureau
Chrome | Firefox | C'EST À DIRE | Bord | Safari |
---|---|---|---|---|
4 | 2 | 7 | 12 | 3.1 |
Mobile / tablette
Chrome Android | Android Firefox | Android | Safari sur iOS |
---|---|---|---|
88 | 85 | 3 | 8 |
Collant
La sticky
valeur est comme un compromis entre les valeurs relative
et fixed
. Au moment d'écrire ces lignes, il s'agit actuellement d'une valeur expérimentale, ce qui signifie qu'il ne fait pas partie de la spécification officielle et n'est que partiellement adopté par certains navigateurs. En d'autres termes, ce n'est probablement pas la meilleure idée de l'utiliser sur un site Web de production en direct.
Qu'est ce que ça fait? Eh bien, cela vous permet de positionner un élément par rapport à quoi que ce soit sur le document, puis, une fois qu'un utilisateur a défilé au-delà d'un certain point dans la fenêtre, de fixer la position de l'élément à cet emplacement afin qu'il reste affiché en permanence comme un élément avec un fixed
évaluer.
Prenons l'exemple suivant:
.element ( position: sticky; top: 50px; )
L'élément sera positionné de manière relative jusqu'à ce que l'emplacement de défilement de la fenêtre atteigne un point où l'élément sera à 50px
partir du haut de la fenêtre. À ce stade, l'élément devient collant et reste à une fixed
position en 50px
haut de l'écran.
La démonstration suivante illustre ce point, où la navigation supérieure est le relative
positionnement par défaut et la deuxième navigation est définie sticky
tout en haut de la fenêtre. Veuillez noter que la démo ne fonctionnera que dans Chrome, Safari et Opera au moment de la rédaction de cet article.
Ces données de support de navigateur proviennent de Caniuse, qui contient plus de détails. Un nombre indique que le navigateur prend en charge la fonctionnalité dans cette version et plus.
Bureau
Chrome | Firefox | C'EST À DIRE | Bord | Safari |
---|---|---|---|---|
91 | 59 | Non | 88 | 7,1 * |
Mobile / tablette
Chrome Android | Android Firefox | Android | Safari sur iOS |
---|---|---|---|
88 | 85 | 81 | 8 * |
Plus d'information
Vidéo le 25 février 2015# 110: Aperçu rapide des valeurs de position CSS
▶ Durée: 13h34 position![](5264625/position_css-tricks.jpg.webp)
![](5264625/position_css-tricks.jpg.webp)
![](5264625/position_css-tricks.jpg.webp)
![](5264625/position_css-tricks_2.jpg.webp)
![](5264625/position_css-tricks.jpg.webp)
![](5264625/position_css-tricks.jpg.webp)
![](5264625/position_css-tricks_3.jpg.webp)
![](5264625/position_css-tricks.jpg.webp)
![](5264625/position_css-tricks.jpg.webp)
![](5264625/position_css-tricks.jpg.webp)
![](5264625/position_css-tricks.jpg.webp)
![](5264625/position_css-tricks.jpg.webp)
![](5264625/position_css-tricks.jpg.webp)