J'ai la division suivante
<div id="over" style="position:absolute; width:100%; height:100%>
<img src="img.png">
</div>
Comment aligner l'image de manière à ce qu'elle soit située au milieu et au centre de la division ?
J'ai la division suivante
<div id="over" style="position:absolute; width:100%; height:100%>
<img src="img.png">
</div>
Comment aligner l'image de manière à ce qu'elle soit située au milieu et au centre de la division ?
Following doesn't work. What's the mistake i am doing. <html> <head> <style> #over img { display: block; margin-left: auto; margin-right: auto; } </style> </head> <body> <div id="over" style="position:absolute; width:100%; height:100%"> <img src=" img8a.flixcart.com/image/tablet/f/k/t/ "> </div> </body> </html>
Si nous n'utilisons pas display: block
la valeur par défaut est display: inline
en fonction de w3schools.com/cssref/pr_class_display.asp . Pourquoi devons-nous utiliser block ? Cela a fonctionné pour moi, mais je ne sais pas pourquoi block va centrer l'image et pas inline.
Solution très courte et facile, mais il semble qu'elle ne fonctionne qu'avec une largeur et une hauteur fixes, sans pourcentage. Elle fonctionne cependant avec les flottants, donc +1 pour cela. - jsfiddle.net/2s2nY/2
Cela ne fonctionnera pas si la largeur de l'image est supérieure à la largeur de la division.
Cela peut également être fait en utilisant la mise en page Flexbox :
TAILLE STATIQUE
.parent {
display: flex;
height: 300px; /* Or whatever */
background-color: #000;
}
.child {
width: 100px; /* Or whatever */
height: 100px; /* Or whatever */
margin: auto; /* Magic! */
}
<div class="parent">
<img class="child" src="https://i.vimeocdn.com/portrait/58832_300x300"/>
</div>
TAILLE DYNAMIQUE
html, body {
width: 100%;
height: 100%;
display: flex;
background-color: #999;
}
* {
margin: 0;
padding: 0;
}
.parent {
margin: auto;
background-color: #000;
display: flex;
height: 80%;
width: 80%;
}
.child {
margin: auto; /* Magic! */
max-width: 100%;
max-height: 100%;
}
<div class="parent">
<img class="child" src="https://i.vimeocdn.com/portrait/58832_300x300"/>
</div>
J'ai trouvé l'exemple dans ce artículo qui explique très bien le mode d'emploi de la mise en page.
Il me semble que vous vouliez également que l'image soit centrée verticalement dans le conteneur. (Je n'ai pas vu de réponse qui fournisse cela)
HTML
<div id="over">
<span class="Centerer"></span>
<img class="Centered" src="http://th07.deviantart.net/fs71/200H/f/2013/236/d/b/bw_avlonas_a5_beach_isles_wallpaper_image_by_lemnosexplorer-d6jh3i7.jpg" />
</div>
CSS
*
{
padding: 0;
margin: 0;
}
#over
{
position:absolute;
width:100%;
height:100%;
text-align: center; /*handles the horizontal centering*/
}
/*handles the vertical centering*/
.Centerer
{
display: inline-block;
height: 100%;
vertical-align: middle;
}
.Centered
{
display: inline-block;
vertical-align: middle;
}
Nota: cette solution est bonne pour aligner tout élément dans tout élément. Pour IE7, lorsque l'on applique le .Centered
sur les éléments de bloc, vous devrez utiliser une autre astuce pour obtenir la classe inline-block
fonctionnement. (cela parce que IE6/IE7 ne joue pas bien avec inline-block sur les éléments de bloc)
Au lieu d'avoir des span
vous pouvez utiliser le pseudo-élément :before
: jsfiddle.net/xaliber/cj6zhtp0
@deathlock c'est bien connu. mais je visais les anciens navigateurs IE (qui ne supportaient pas les pseudo éléments).
@avrahamcool Je vois, je n'avais pas réalisé cela. Alors pourquoi ne pas envelopper la conditionnelle <!--[if lt IE 8]>
autour de la span
?
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.
13 votes
Duplicate a demandé il y a 2 minutes : CSS : image au milieu
1 votes
Sujet similaire ici : stackoverflow.com/questions/18516317/
0 votes
Pensez à sélectionner une seule réponse comme étant correcte.
0 votes
Duplicata possible de Comment positionner l'image au centre/milieu, verticalement et horizontalement ?