Maison > Article > interface Web > Pourquoi \"margin: auto\" ne fonctionne-t-il pas avec des éléments positionnés de manière absolue ?
Comprendre le problème automatique de marge de positionnement absolu
Lors de l'application de « position : absolue » à un élément avec « marge-gauche : auto » et « margin-right: auto", vous remarquerez peut-être que les marges semblent n'avoir aucun effet. Ce comportement diffère de « position : relative », où les marges fonctionnent comme prévu. Pour comprendre cet écart, approfondissons la mécanique sous-jacente.
Lorsqu'un élément est positionné de manière absolue, il est supprimé du flux normal du document. Cela signifie qu'il n'interagit plus avec ses éléments voisins et que sa taille est déterminée uniquement par ses dimensions explicites ou par la taille de son conteneur. Par conséquent, si la largeur de l'élément n'est pas explicitement définie, la valeur calculée par le navigateur est « auto », qui est dans la plupart des cas 0.
Dans ce scénario, appliquer « margin-left: auto » et "margin-right: auto" tente de créer un espace autour de l'élément en définissant les marges gauche et droite à la moitié de la largeur de l'élément. Cependant, puisque la largeur calculée de l'élément est 0, la valeur de marge calculée devient également 0. C'est pourquoi les marges semblent n'avoir aucun effet.
En revanche, lorsque "position : relative" est utilisée, l'élément reste dans le flux normal du document. Sa taille est déterminée par son contenu et l'espace qu'il occupe au sein du flux. Lorsque "margin-left: auto" et "margin-right: auto" sont appliqués, les marges sont calculées en fonction de la largeur réelle de l'élément, qui est non nulle dans ce cas. Par conséquent, les marges sont correctement appliquées, ce qui entraîne le centrage de l'élément dans son élément conteneur.
Pour centrer un élément positionné de manière absolue, vous pouvez spécifier sa largeur et sa hauteur puis utiliser "position : absolue ; gauche : 50 % ; transformer : traduire (-50 %, -50 %);" pour le centrer dans son conteneur. Cette méthode positionne avec précision l'élément à l'emplacement souhaité, même lorsque les marges sont définies sur « auto ».
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!