Codelynx.dev
Posts

Comment centrer une image en CSS : Les 5 méthodes

05/11/2024 Melvynx

Salut ! Si tu galères à centrer une image en CSS, ne t'inquiète pas, je vais t'expliquer les meilleures techniques pour y arriver. On va voir plusieurs méthodes, de la plus simple à la plus flexible.

1. La méthode Flexbox

Commençons par la méthode la plus moderne et flexible : Flexbox. C'est ma préférée car elle fonctionne dans presque tous les cas.

CSS
.container {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 100vh; /* Pour centrer verticalement sur toute la hauteur */
}

img {
  max-width: 100%;
  height: auto;
}

Voici comment ça fonctionne en pratique :

Erreur dans le Playground

[
  {
    "code": "invalid_type",
    "expected": "number",
    "received": "string",
    "path": [
      "height"
    ],
    "message": "Expected number, received string"
  }
]

Cette méthode est géniale car elle centre l'image à la fois horizontalement et verticalement. Le justify-content: center s'occupe du centrage horizontal, tandis que align-items: center gère le vertical.

Pour en apprendre plus, il faut vraiment que tu aille voir mon guilde complet sur FlexBox CSS.

2. La méthode margin: auto

Une autre technique classique mais efficace consiste à utiliser margin: auto avec display: block. C'est parfait pour un centrage horizontal simple.

CSS
img {
  display: block;
  margin: 0 auto;
  max-width: 100%;
  height: auto;
}

Regarde comment ça fonctionne :

Erreur dans le Playground

[
  {
    "code": "invalid_type",
    "expected": "number",
    "received": "string",
    "path": [
      "height"
    ],
    "message": "Expected number, received string"
  }
]

Cette méthode est super simple et fonctionne bien pour le centrage horizontal. Par contre, pour le centrage vertical, il faudra combiner avec d'autres techniques.

3. La méthode position: absolute

Si tu as besoin d'un contrôle précis sur le positionnement, la méthode position: absolute peut être très utile.

CSS
.container {
  position: relative;
  height: 100vh;
}

img {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  max-width: 100%;
  height: auto;
}

Voici comment ça se comporte :

Erreur dans le Playground

[
  {
    "code": "invalid_type",
    "expected": "number",
    "received": "string",
    "path": [
      "height"
    ],
    "message": "Expected number, received string"
  }
]

Cette technique est puissante car elle permet un centrage parfait, même si tu ne connais pas les dimensions de l'image. Le transform: translate(-50%, -50%) est la clé ici, car il déplace l'image de moitié de sa propre taille dans les deux directions.

4. La méthode Grid

Si tu es fan de CSS Grid (et tu devrais l'être !), voici comment centrer une image avec cette méthode :

CSS
.container {
  display: grid;
  place-items: center;
  height: 100vh;
}

img {
  max-width: 100%;
  height: auto;
}

Et voilà le résultat :

Erreur dans le Playground

[
  {
    "code": "invalid_type",
    "expected": "number",
    "received": "string",
    "path": [
      "height"
    ],
    "message": "Expected number, received string"
  }
]

Cette méthode est incroyablement concise. Le place-items: center est une sorte de super-pouvoir qui centre l'élément à la fois horizontalement et verticalement en une seule ligne !

Conclusion

Voilà, tu as maintenant toutes les cartes en main pour centrer tes images comme un pro ! Personnellement, j'utilise souvent Flexbox ou Grid pour leur flexibilité, mais chaque méthode a ses avantages selon le contexte.

N'hésite pas à jouer avec les playgrounds pour bien comprendre comment chaque technique fonctionne. La pratique est la clé pour maîtriser ces concepts !

Retrouve d'autre article sur le CSS :

Reçois une formation HTML / CSS gratuite
Deviens un expert HTML / CSS en comprenant tous les concepts avancés de ce langage.

Allez, amuse-toi bien avec le centrage d'images et n'hésite pas si tu as des questions !