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 :

colonnes factices : centrer verticalement les DIV


Sujet :

Centrer un élément en CSS

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé Avatar de sebhm
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2004
    Messages
    1 090
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 090
    Points : 1 241
    Points
    1 241
    Par défaut colonnes factices : centrer verticalement les DIV
    Bonjour,

    dans un autre Post, vous m'avez aidé à créer 3 blocs côte à côte, de meme hauteur, c'est à dire 3 colonnes factices car les bordures sont 'simulées' par une image :

    Citation Envoyé par sebhm Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <div id="conteneur">
      <div id="bloc1">BLOC1</div>
      <img id="separ1" src="img/brdc.png" alt="séparation" />
      <div id="bloc2">BLOC2<br />BLOC2</div>
      <img id="separ2" src="img/brdc.png" alt="séparation" />
      <div id="bloc3">BLOC3</div>
      <hr class="antifloat" />
    </div>
    CSS:
    Code : 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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    div#conteneur {
      position : relative;
      margin : 0;
      padding : 0;
      border : 1px solid black;
    }
    div#bloc1 {
      margin : 0 ;
      width : 20%;
      float : left;
    }
    div#bloc2 {
      margin : 0 ;
      float : left;
      width : 22%;
      border : 1px solid black;
    }
    div#bloc3 {
      margin : 0 ;
      margin-left : 52%;
      border : 1px solid black;
      width : 22%;
    }
    hr.antifloat {
      visibility : hidden;
    	clear : both;
    }
     
    #separ1 {
      position : absolute;
      top : 0;
      left : 20%;
      width : 4px;
      height : 100%;
      }
    #separ2 {
      position : absolute;
      top : 0;
      left : 52%;
      width : 4px;
      height : 100%;
      }
    le CLEAR est nécessaire pour que le bloc 'conteneur' ait la bonne hauteur.
    je voudrais maintenant centrer verticalement le contenu de chacune de mes colonnes
    (la colonne la plus haute ne va pas bouger car c'est elle qui détermine la hauteur de mes autre colonnes, mais je voudrais centrer verticalement le texte qu'il y a dans les 2 autres).

    Ce n'est pas évident car mes colonnes n'ont en fait pas la meme hauteur. Si une colonne ne contient qu'une seule ligne, sa hauteur = une ligne.

    Pour le constater, il faut modifier le CSS en ajoutant une bordure par exemple autour du bloc 1:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    div#bloc1 {
      margin : 0 ;
      width : 20%;
      float : left;
      border : 1px solid red;
    }
    Donc, je ne pense pas qu'il faille centrer verticalement le contenu de chaque bloc mais plutot centrer verticalement le bloc lui meme dans le 'conteneur'
    (je pense mais je peux me tromper...)

    j'ai essayé de modifier les propriétés d'affichage de mon bloc 'conteneur' en faisant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    div#conteneur {
      position : relative;
      margin : 0;
      padding : 0;
      border : 1px solid black;
     
      display:table-cell; 
      vertical-align:middle;
    }
    ce qui aurait du faire basculer le mode d'affichage du bloc conteneur en 'mode Table', ce qui permettrait de centrer verticalement le contenu...
    Ca ne marche pas et pire, ca explose mon affichage...


    une idée ??

    merci

  2. #2
    Rédacteur
    Avatar de Macmillenium
    Homme Profil pro
    Développeur front-end
    Inscrit en
    Mars 2008
    Messages
    2 333
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur front-end
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mars 2008
    Messages : 2 333
    Points : 3 747
    Points
    3 747
    Par défaut
    Bonjour,

    Inspire toi de ce topic
    Je ne réponds pas aux questions techniques par MP.

  3. #3
    Membre éprouvé Avatar de sebhm
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2004
    Messages
    1 090
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 090
    Points : 1 241
    Points
    1 241
    Par défaut
    OK sous Firefox mais KO sous IE7
    (j'ose meme pas imaginer IE6..)

    je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <div id="conteneur">
      <div id="bloc1">BLOC1</div>
      <div id="bloc2">BLOC2<br />BLOC2</div>
      <div id="bloc3">BLOC3</div>
    </div>
    avec le CSS:
    Code : 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
    div#conteneur {
      position : relative;
      margin : 0;
      padding : 0;
    	border : 1px solid black;
    	display:table;
    	width : 100%;
    }
    div#bloc1 {
      margin : 0 ;
      width : 30%;
    	display:table-cell;
    	border : 1px solid red;
    	vertical-align:middle;
    }
    div#bloc2 {
      margin : 0 ;
      width : 50%;
    	display:table-cell;
    	border : 1px solid blue;
    	vertical-align:middle;
    }
    div#bloc3 {
      margin : 0 ;
    	display:table-cell;
      width : 20%;
    	border : 1px solid green;
    	vertical-align:middle;
    }
    Sous IE, les blocs apparaissent les uns au dessous des autres ...??

    et si j'applique un float, alors là c'est le marasme.
    IE affiche alors les DIV sur la meme ligne... mais rien n'est centré verticalement.
    Firefox perd le centrage vertical, et semble calculer différemment les tailles des div .... ??

  4. #4
    Rédacteur
    Avatar de Macmillenium
    Homme Profil pro
    Développeur front-end
    Inscrit en
    Mars 2008
    Messages
    2 333
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur front-end
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mars 2008
    Messages : 2 333
    Points : 3 747
    Points
    3 747
    Par défaut
    Et si tu essai :
    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
     
    div#bloc1, div#bloc2, div#bloc3 {
    	margin : 0 ;
    	width : 30%;
            display:-moz-inline-box;
    	display:inline-block;
    	border : 1px solid red;
    	vertical-align:middle;
    }
    div#bloc2 {
    	width : 50%;
    	border : 1px solid blue;
    }
     
    div#bloc3 {
    	width : 20%;
    	border : 1px solid green;
    }

    ?
    Je ne réponds pas aux questions techniques par MP.

  5. #5
    Membre confirmé Avatar de desert
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    414
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2007
    Messages : 414
    Points : 479
    Points
    479
    Par défaut
    Ils se mettent l'un en-dessous de l'autre car IE gère pas le display:table-cell.
    Mais pour ce que tu demandes, à part utiliser une table, je ne vois pas vraiment de solution.

  6. #6
    Rédacteur
    Avatar de Macmillenium
    Homme Profil pro
    Développeur front-end
    Inscrit en
    Mars 2008
    Messages
    2 333
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur front-end
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mars 2008
    Messages : 2 333
    Points : 3 747
    Points
    3 747
    Par défaut
    Citation Envoyé par desert Voir le message
    Ils se mettent l'un en-dessous de l'autre car IE gère pas le display:table-cell.
    D'où la proposition du display:inline-block
    Je ne réponds pas aux questions techniques par MP.

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

Discussions similaires

  1. Centrer verticalement les éléments d'une ligne
    Par codera dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 23/12/2012, 22h27
  2. Centrer verticalement les objet dans un flow layout ?
    Par Djobird dans le forum Agents de placement/Fenêtres
    Réponses: 1
    Dernier message: 05/09/2008, 09h08
  3. centrer verticalement un DIV en fonction du scroll
    Par discogarden dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 07/04/2008, 16h11
  4. Centrer verticalement les éléments d'un <form>
    Par Huntress dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 28/03/2006, 09h46

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