Centrer une image (horizontalement et verticalement) dans un bloc

Centrage horizontal

Le centrage horizontal d'une image dans un un conteneur de type bloc, une <div> par exemple, ne pose pas de problème. Il suffit de définir la propriété CSS text-align à center sur le conteneur.

Code HTML :

<div class=conteneur>
  <img src=image.jpg alt=Image />
</div> 

Code CSS :

.conteneur{
  width: 300px;
  height: 300px;
  border: 1px #aaa solid;
text-align: center;
}

Résultat :

 

Centrage vertical

Le centrage vertical est plus délicat à mettre en place.

Il faut en effet modifier la propriété display de notre conteneur pour pouvoir utiliser la propriété vertical-align qui nous permettra de positionner verticalement l'image.

Code CSS :

.conteneur{
width: 300px;
height: 300px;
border: 1px #aaa solid;
text-align: center;
display: table-cell;
vertical-align: middle;
}

Résultat :

 

Attention ! Malheureusement, cette technique ne fonctionne sur Internet Explorer qu'à partir de la version 8. Pour y remédier, on peut mettre l'image dans un tableau à une case pour reproduire ce positionnement mais on perd alors en sémantique.