Alignement vertical en CSS

Kemich Messages postés 211 Statut Membre -  
arthezius Messages postés 3756 Statut Membre -
Bonjour,

J'ai un div qui occupe une hauteur de 10% de ma page. Dans ce div j'ai une ligne de texte.
J'aimerais la centrer verticalement.

Si mon div était dimensionnée en pixels, pas de problemes, avec un line-height de la meme valeur que la hauteur de ma div, ca fonctionne.

Cependant je DOIT garder la hauteur de celui ci en %, et du coup, l'alignement vertical ne marche pas.

Quelqu'un a t'il une idée pour solutionner ce problème ?

Merci d'avance, bon codage !

5 réponses

  1. Kemich Messages postés 211 Statut Membre 22
     
    Enchanté,

    Toujours pas d'idées ?
    0
  2. Gariig Messages postés 199 Statut Membre 9
     
    salut

    essaie d'éviter de mettre une hauteur en pourcentage sur une div
    Tu peux mettre

    height:auto;

    c'est mieux :°
    0
  3. Gariig Messages postés 199 Statut Membre 9
     
    sinon ce que tu peux faire, c'est à l'intérieur de ta div, tu peux mettre un tableau en précisant height: 100%

    avec une ligne <tr> et une cellule <td valign="middle">

    J'espere avoir pu t'aider ;)
    0
  4. Kemich Messages postés 211 Statut Membre 22
     
    Enchanté,

    Je DOIT garder ce div avec une hauteur en %, je me lance ds la construction de site en %, tout est calé, mon site s'adapte bien a toute les résolutions d'écran.

    J'ai essayé de bidouiller avec un tableau dans ce div, mais ca ne fonctionne pas.

    D'autres idées ?
    0
    1. arthezius Messages postés 3756 Statut Membre 475
       
      Si ton bloc fait 10% en hauteur, il reste donc 90%. Si tu veux le centrer en hauteur, il te suffit de mettre un top:45%; en n'oubliant de préciser le positionnement en relatif ou absolu.
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Kemich Messages postés 211 Statut Membre 22
     
    Ce n'est pas le div que je veut centrer, c'est le texte CONTENU dans ce div.

    Merci quand meme.
    0
    1. arthezius Messages postés 3756 Statut Membre 475
       
      Le principe est le même.
      Tu met le texte dans un div qui sera donc invisible et tu le centre dans son container.
      Par exemple, si tu avait un code de ce genre:
      <div class="bloc"> 
      <p>texte</p> 
      <p>texte</p> 
      </div>

      Si tu veux centrer le texte dans le div bloc, il te suffit de procéder comme suis:
      <div class="bloc"> 
      <div class="cent_vert"> 
      <p>texte</p> 
      <p>texte</p> 
      </div> 
      </div>

      Après tout ce joue dans le CSS:
      div.cent_vert{position:relative; top:50%;margin-top:-x%;}

      Le x est à remplacer par la moitié de la hauteur du texte.
      0