J'essaie d'obtenir une image centrée horizontalement et verticalement dans un div de hauteur et de largeur variables.centré horizontalement et verticalement Responsive image
Maintenant, l'image doit également être réactive et ajuster si la hauteur et/ou la largeur du conteneur est inférieure à la hauteur ou la largeur des images.
Après des recherches, en passant par toutes les différentes « solutions » là-bas et tripoter une solution, je ne pouvais pas trouver le parfait, mais deux sont venus près:
1.) Ce premier ne tout ce qu'il faut, sauf lorsque la largeur de la fenêtre est plus petite que la largeur de l'image, l'image ne soit plus alignée horizontalement:
http://jsfiddle.net/me2loveit2/ejbLp/8/
HTML
<div class="overlay">
<div class="helper"></div>
<img src="http://dummyimage.com/550x480/000/fff?text=H/V Centered and height/width variable">
</div>
CSS
.helper {
height:50%;
width:100%;
margin-bottom:-240px;
min-height: 240px;
}
.overlay {
width: 100%;
height: 100%;
position: fixed;
top: 0px;
left: 0px;
cursor: pointer;
background-color: rgba(0, 0, 0, 0.5);
}
img {
margin: 0 auto;
max-width: 100%;
max-height: 100%;
display: block;
}
2.) Ce second exemple permet de rester tout aligné, mais l'image ne diminue pas lorsque la hauteur est inférieure à la hauteur de l'image:
http://jsfiddle.net/me2loveit2/ejbLp/9/
HTML
<div id="outer">
<div id="container">
<img src="http://dummyimage.com/550x480/000/fff?text=H/V Centered and height/width variable">
</div>
</div>
CSS
#outer {
height:100%;
width:100%;
display:table;
position:fixed;
top:0px;
left:0px;
background-color: rgba(0, 0, 0, 0.5);
}
#container {
vertical-align:middle;
display:table-cell;
max-width: 100%;
max-height: 100%;
}
img {
margin: 0 auto;
max-width: 100%;
max-height: 100%;
display:block;
}
C'est bien, mais j'ai besoin que l'image ne soit pas plus grande qu'elle ne l'est, mais seulement plus petite sur les petites fenêtres. Il devrait rester centré horizontalement et verticalement, tout comme dans mes exemples. –
J'ai joué encore et encore réussi à combiner un violon de travail en utilisant votre méthode d'arrière-plan au lieu d'une image: http://jsfiddle.net/me2loveit2/ejbLp/11/ –
Je l'ai édité .. mieux maintenant? – LGT