IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Mise en page CSS Discussion :

Centrer verticalement une div dans le body


Sujet :

Centrer un élément en CSS

  1. #1
    Membre du Club
    Homme Profil pro
    Flutter/java/windev/php/javascript
    Inscrit en
    Octobre 2008
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Flutter/java/windev/php/javascript
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 87
    Points : 52
    Points
    52
    Par défaut Centrer verticalement une div dans le body
    Bonjour, je cherche à afficher une div (en gros une image, un peu de texte, dans ce genre) au milieu de ma page, la centrer horizontalement aucun soucis mais verticalement même en cherchant sur le net et en copiant les exemples partiels que je trouve rien ne fonctionne
    j'arrive à quelque chose si j'utilise les px, mais en % impossible de le faire aller

    Code css : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    body{
    	background-color:#000;
    	background-attachment:fixed;
    	width:100%;
    	height:100%;
    }
    
    
    #middle{
    	position: absolute;
    	top: 50%;
    }
    #inner{
    	position:relative;
    	top:-100px;
    	background-image:url(background.png);
    	background-attachment:fixed;
    	margin:auto;
    	border:#333;
    	border-width:50px;
    	border-style:solid;
    	width:70%;
    	height: 80%;
    	text-align:center;
    }

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <body>
        <div id="middle">
            <div id="inner">
                <img src="image.JPG" /> 
            </div>
        </div>		
    </body>

    la valeur en rouge me déplace bien ma div, maintenant sa valeur dépend de la résolution du client, et en "%" rien ne se passe
    je commence à peine le css donc il y a surement des incohérences dû aux multiples tentatives dans le css et toute aide est la bienvenue.

  2. #2
    Expert confirmé
    Avatar de rodolphebrd
    Homme Profil pro
    Indépendant
    Inscrit en
    Novembre 2012
    Messages
    2 336
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Indépendant
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2 336
    Points : 5 289
    Points
    5 289
    Par défaut
    Bonjour,

    la propriété vertical-align:middle; fonctionne avec un doctype strict.

  3. #3
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 122
    Points : 44 903
    Points
    44 903
    Par défaut
    Bonjour,
    si tu connais la hauteur/largeur de la DIV en final, tu peux utiliser la technique des marges négatives.
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    <!DOCTYPE html>
    <html lang="fr">
    <head>
    <meta charset="UTF-8">
    <title>[Centrage dans BODY]</title>
    <style>
    html, body{
      height:100%;
      margin:0;
      padding:0;
    }
    #conteneur{
      position:absolute;
      background-color:#EEF;
      width:400px;
      height:400px;
      top:50%;
      left:50%;
      margin-top: -200px;
      margin-left:-200px;
    }
    </style>
    </head>
    <body>
    <div id="conteneur">
    </div>
    </body>
    </html>

  4. #4
    Expert confirmé
    Avatar de rodolphebrd
    Homme Profil pro
    Indépendant
    Inscrit en
    Novembre 2012
    Messages
    2 336
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Indépendant
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2 336
    Points : 5 289
    Points
    5 289
    Par défaut
    Bonjour,

    Pour les images je vous conseille ce code:
    Code css : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    img {
    max-width: 100%; 
    height: auto;
    width: auto ;
    box-sizing: border-box;
    }

  5. #5
    Membre émérite
    Avatar de Candygirl
    Femme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 912
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 52
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 912
    Points : 2 907
    Points
    2 907
    Par défaut
    Bonjour,

    Un exemple minimaliste avec un centrage à l'aide d'un display:table-cell. Fonctionne à partir de IE8. Le table-cell a l'avantage de s’affranchir des dimensions et ne pose pas le même problème que les marges négatives en cas de petites fenêtres (pb contournable à l'aide de min-width/height sur IE7+).

    Si le centrage vertical est absolument requis pour les vieilleries IE6 et 7, on peut passer par des commentaires conditionnels pour y pallier.

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    <!doctype html>
    <html lang="fr-FR">
    <head>
    	<meta charset="utf-8" />
    	<title>centrage vertical</title>
    	<style>
            html,body {
                    height:100%;
                    display:table;
                    width:100%;
            }
            
            body {
                    display:table-cell;
                    vertical-align:middle;
            }
            
            img {
                    display:block;
                    margin:0 auto;
            }
            </style>
     
     
    </head>
     
    <body>
    	<img src="image.png" alt="image" />
    </body>
    </html>

  6. #6
    Membre du Club
    Homme Profil pro
    Flutter/java/windev/php/javascript
    Inscrit en
    Octobre 2008
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Flutter/java/windev/php/javascript
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 87
    Points : 52
    Points
    52
    Par défaut
    Merci pour vos réponse, j'ai testé le centrage via table-cell qui correspond à ce que j'avais mis en place (plus ou moins) de mon cotes. Celui ci fonctionne bien merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [CSS 2.1] Centrer verticalement une image dans une liste
    Par demonixis dans le forum Mise en page CSS
    Réponses: 5
    Dernier message: 27/04/2011, 10h16
  2. [CSS 3] Comment centrer verticalement une image dans un <li>
    Par pierrot10 dans le forum Mise en page CSS
    Réponses: 0
    Dernier message: 23/04/2010, 12h37
  3. centrer horizontalement une div dans un autre
    Par penguin50 dans le forum Mise en page CSS
    Réponses: 1
    Dernier message: 04/04/2008, 08h35
  4. Centrer verticalement une image dans un div
    Par sovitec dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 20/12/2005, 16h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo