Comment aligner verticalement une image dans une div

Comment pouvez-vous vous aligner une image à l'intérieur d'un contenant div?

Exemple

Dans mon exemple, j'ai besoin de la verticale du centre de la <img> dans le <div> avec class ="frame":

<div class="frame" style="height: 25px;">
    <img src="http://jsfiddle.net/img/logo.png" />
</div>

.framehauteur est fixe et l'image en hauteur est inconnue. Je peux ajouter de nouveaux éléments dans .frame si c'est la seule solution. Je suis en train de le faire sur Internet Explorer 7 et plus tard, WebKit, Gecko.

Voir le jsfiddle ici.

CSS:

.frame {
    height: 25px;      /* Equals maximum image height */
    line-height: 25px;
    width: 160px;
    border: 1px solid red;

    text-align: center;
    margin: 1em 0;
}
img {
    background: #3A6F9A;
    vertical-align: middle;
    max-height: 25px;
    max-width: 160px;
}

HTML:

<div class=frame>
<img src="http://jsfiddle.net/img/logo.png" height=250 />
</div>
<div class=frame>
<img src="http://jsfiddle.net/img/logo.png" height=25 />
</div>
<div class=frame>
<img src="http://jsfiddle.net/img/logo.png" height=23 />
</div>
<div class=frame>
<img src="http://jsfiddle.net/img/logo.png" height=21 />
</div>
<div class=frame>
<img src="http://jsfiddle.net/img/logo.png" height=19 />
</div>
<div class=frame>
<img src="http://jsfiddle.net/img/logo.png" height=17 />
</div>
<div class=frame>
<img src="http://jsfiddle.net/img/logo.png" height=15 />
</div>
<div class=frame>
<img src="http://jsfiddle.net/img/logo.png" height=13 />
</div>
<div class=frame>
<img src="http://jsfiddle.net/img/logo.png" height=11 />
</div>
<div class=frame>
<img src="http://jsfiddle.net/img/logo.png" height=9 />
</div>
<div class=frame>
<img src="http://jsfiddle.net/img/logo.png" height=7 />
</div>
<div class=frame>
<img src="http://jsfiddle.net/img/logo.png" height=5 />
</div>
<div class=frame>
<img src="http://jsfiddle.net/img/logo.png" height=3 />
</div>

  • Bonjour, désolé mais je suis en désaccord au sujet de l'utilisation d'un helper ici étant le plus valorisé solution. Mais Ce n'est pas la seule façon. D'autres sont même pris en charge par les navigateurs. Je vous propose une solution ici stackoverflow.com/a/43308414/7733724 et W3C.org sur info. Vous pouvez le vérifier. Cheers
  • La lecture de Centrage des Choses de l'article sur le W3C va être utile: w3.org/Style/Examples/007/center.en.html
  • Guide parfait pour aligner css-tricks.com/centering-css-complete-guide