Centrer V et H une image dans une <div> en css

Signaler
Messages postés
11
Date d'inscription
jeudi 30 mars 2017
Statut
Membre
Dernière intervention
18 mai 2020
-
Messages postés
10
Date d'inscription
dimanche 11 mars 2018
Statut
Membre
Dernière intervention
19 mars 2018
-
Bonjour à tous,

Il va falloir m'expliquer.
Je cherche simplement à centrer verticalement et horizontalement une image dans une <div>
Horizontalement c'est pas compliqué (margin-left: auto et margin right: auto), mais verticalement...

Je n'ai pas de <div> parent ou enfant, pas de <div> imbriquées, Pas de display : block ou inline-block, pas de flex.
Je veux juste que mon image arrive toujours au centre de la page.

ca marche avec un tableau ?!! avec align="absmiddle"
mais plus personne n'utilise de tableau !!!

Je trouve ça fou. Je viens de me taper 50 forums, avec tous des méthodes différentes (marges négatives, et autres).
Par curiosité j'aimerai comprendre pourquoi c'est si compliqué.
pourquoi margin-top: auto et margin-bottom : auto, ne fonctionne pas. Alors que ça fonctionne horizontalement ?
On en est au css3, html5, etc. et foutre une p*****?!! d'image au centre de la page... enfin...

Merci d'avance.
Merci à codes-sources d'exister (même si là j'ai un peu honte)

Mon code (vous allez voir c'est con):
<head>
<style>
body { background-image: url(images/bg.png);}

.home {
<style>
body { background-image: url(images/bg.png);}

.home {
text-align: center;
margin-left : auto;
margin-right: auto;
}
</style>
</head>


<body>
<div class="home">
<a href="https://www.monsite.com"><img src="images/img.png" alt=""></a>
</div>
</body>

1 réponse

Messages postés
10
Date d'inscription
dimanche 11 mars 2018
Statut
Membre
Dernière intervention
19 mars 2018

Pour centrer verticalement il faut utiliser un " line-height " qui aura la même valeur que le height de ton div:

line-height: 200px;
height: 200px;

Note : Ces valeurs s'applique au div pas à l'image