Maison  >  Article  >  interface Web  >  Pourquoi \"margin: auto\" ne fonctionne-t-il pas avec des éléments positionnés de manière absolue ?

Pourquoi \"margin: auto\" ne fonctionne-t-il pas avec des éléments positionnés de manière absolue ?

Barbara Streisand
Barbara Streisandoriginal
2024-10-30 18:31:31455parcourir

Why Doesn't

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn