Bonjour!!

J'ai bien compris le fonctionnement du positionnement absolu d'un élément dans une page.
L'élément en question sort du flux et se place sur un plan supérieur à une position dépendant d'un référent ancêtre positionné ou sinon l'élément racine.

Je n'avais pas de problème avec le mécanisme mais récemment j'ai voulu me remettre au CSS et je viens de constater que le placement absolu ne suit plus la règle définie dans le bouquin de Raphael Goetter.

D'après le bouquin , si on décide display:absolute , l'élément se met hors flux en coordonnée 0,0 relativement à son référent.

Ce que je constate c'est que l'élément sort bien du flux mais par défaut , il se positionne en considérant l'environnement précédent non plus à ( 0 , 0 ), comme si il y avait un calcul pour éviter les chevauchements.
Je dois explicitement mettre top:0;left:0; pour qu'il se place à la position théorique.

Ma question est :"Est -ce que c'est devenu le comportement standard ?"

Merci.
Modifié par Thibaut32 (10 Aug 2017 - 16:39)
Bonjour.

"Comportement standard"… probablement puisque cela s'est toujours comporté ainsi.

Remarquez comme, quand vous ne modifiez que le positionnement horizontalement (par exemple right), cet axe sera modifié mais l'autre restera dans son comportement par défaut.

Sur MDN, on dit :
absolute
Ce mot-clé ne laisse pas d'espace pour l'élément. Au lieu de cela, il le positionne à la position spécifiée relative par rapport à son plus proche ancêtre positionné ou au bloc englobant initial.

:)
Modifié par Zelena (10 Aug 2017 - 16:51)
Administrateur
Hello,
Thibaut32 a écrit :
D'après le bouquin , si on décide display:absolute , l'élément se met hors flux en coordonnée 0,0 relativement à son référent.

Moi j'ai écrit ça ?! J'ai dû avoir un moment d'égarement Smiley smile Il s'agit de quel bouquin ?

Un élément positionné en absolué sort du flux mais demeure à sa position initiale (les valeurs de top, right, bottom et left valant "auto" et non 0).

Il n'est déplacé dans son référent que si l'on change l'une ou plusieurs des valeurs de top, right, bottom et left.

Il me semble que ça a toujours été ainsi.
Merci pour vos réponses.

Oui c'est vrai , désolé , ce n'est pas écrit dans le bouquin , c'est mon interprétation trop rapide.
Je me remets au CSS et je viens de découvrir des nuances sur l'execution des ordres CSS.
Je pensais que display:absolute déclenchait directement le changement de position sans être conditionné sur la précision de propriétés conjointes.

Oui ca a toujours été comme ça , autant pour moi.
D'ailleurs je viens de tomber sur un article sur w3.org qui parle de ça , je vais aller me le farcir , c'est costaud mais si on veut comprendre avec tous les raffinements.
Administrateur
Thibaut32 a écrit :
Je pensais que display:absolute déclenchait directement le changement de position sans être conditionné sur la précision de propriétés conjointes.

Tu veux dire position: absolute; je suppose ? Smiley smile