104 votes

Centrer un élément avec position: relative

J'ai un menu qui apparaît au survol d'une

positionnée absolument. Tous les éléments du menu doivent être positionnés relativement car la

absolue apparaîtra plusieurs fois sur une page et apparaîtra dans plusieurs tailles dans une seule instance.

Comment puis-je centrer plusieurs éléments avec position: relative à la fois verticalement et horizontalement lorsque je ne connaîtrai pas la taille de la

parente?

Je connais l'astuce de position: absolute avec des marges négatives, mais cette situation nécessite quelque chose de différent.

Voici le code:

.OuterCase { 
  position  : absolute; 
  width     : 100%;  
  height    : 100%; 
  text-align: center;
}

.InnerItem  { 
   width  : 38px;
   height : 38px;
   display: inline-block;
}

J'ai réussi à centrer les éléments horizontalement; c'est la verticalité qui se révèle un peu insaisissable.

1voto

.parent {
    width: 100%;
    height: 30vh;    
    display: flex;
    justify-content: center;
    align-items: center;
}
.child {
    position: relative;
    height: 20vh;
    display: flex;
    justify-content: center;
    align-items: center;
  }

Assurez-vous simplement que la hauteur du parent est supérieure à la hauteur de l'enfant.

0voto

cupcake Points 41

Une autre solution simple que je n'ai pas encore vue ici :

.parent{
    display: flex;
    flex-direction: column;
    height: 40vh;
    width: 40vw;
}

.child{
    margin:auto;
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X