"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > 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 ?

Publié le 2024-11-16
Parcourir:587

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 les mécanismes sous-jacents.

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 en position 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 ».

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3