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 :

problème vertical align


Sujet :

CSS

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut problème vertical align
    J'essaie ici de pouvoir créer un espace publicitaire qui combinerais une image et du texte. Le tout dans une boite de 150x150px. Petit problème actuel, nous essayons d'avoir le texte dans la boite de texte centré verticalement s'il ne fait pas les 4-5 lignes de texte (question d'esthétique).

    Mon code jusqu'à présent:

    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
     
    <style>
    #machin {
    font-family:helvetica,arial,sans-serif;
    font-size:11px;
    height:75px;
    overflow:hidden;
    vertical-align:bottom;
    width:150px;
    border:1px solid red;
    padding-top:10px;
    }
     
    #content {
    border:1px solid blue;
    }
     
     
    </style>
     
    <div style="border: 1px solid black; padding: 0; width: 150px; height: 150px;">
    <div style="background-image:url(image.gif); width: 150px; height: 75px;"></div>
    <div id="machin">
    <span id="content">
    Clinique Dr. Machinchouette<br>
    1717 Ch Chambly, Longueuil<br>
    1717 Ch Chambly, Longueuil<br>
    </span>
    </div>
    </div>
    La sémantique est très laide mais bon, je me dit que c'est à voir plus tard une fois que ça vas fonctionner. Dans le cas actuel le texte est irrémédiablement collé en haut, impossible de faire centrer verticalement le texte du Dr. Machinchouette.

    Des idées ?

  2. #2
    Membre averti
    Inscrit en
    Août 2008
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 18
    Par défaut
    Salam,

    - "vertical-align" est généralement mal assimilée. Si tu veux centrer un texte verticalement avec vertical-align, il faut mettre le display du conteneur (machin) sur "table-cell", dans ce cas vertical-align va fonctionner comme feu "valign" et tu peux lui attribuer la valeur "middle", sans rentrer dans les détails de fonctionnement de vertical-align.

    - Sinon tu peux mettre le line-height de ton conteneur sur la même valeur que sa hauteur, c'est une astuce assez répandue pour centrer un texte verticalement.

    - Après, dans un autre registre, tu peux aussi mettre ton image et ton texte dans un bloc positionné en absolu et puis appliquer la fameuse { top:50%; margin-top:-y } mais c'est à condition que tu connaisses la hauteur du bloc à centrer.

    - Dans ton cas je pense que la première méthode est la plus appropriée (table-cell + vertical-align)

  3. #3
    Expert confirmé
    Avatar de 12monkeys
    Homme Profil pro
    Webmaster
    Inscrit en
    Novembre 2006
    Messages
    4 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2006
    Messages : 4 093
    Par défaut
    Bonjour

    C'est une très intéressante question et plus compliquée qu'il n'y parait !

    Citation Envoyé par E.Fahd Voir le message
    - Sinon tu peux mettre le line-height de ton conteneur sur la même valeur que sa hauteur, c'est une astuce assez répandue pour centrer un texte verticalement.
    Le problème ici est que son texte est sur plusieurs lignes et que donc le line-height aura un effet sur chaque ligne : donc ça va dépasser du conteneur...


    Citation Envoyé par E.Fahd Voir le message
    - Dans ton cas je pense que la première méthode est la plus appropriée (table-cell + vertical-align)
    Sauf que table-cell n'est pas reconnu par IE (même dans sa version 7).

    Perso j'ai pas de réponse, je suis aussi curieux d'en connaitre une...

  4. #4
    Membre averti
    Inscrit en
    Août 2008
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 18
    Par défaut
    Salam,

    @12monkeys,
    - Développer pour IE7 est de la pure perte de temps à mon avis. IE8 sera prêt dans quelques mois (Novembre je pense) et il est compatible à 100% avec CSS2.1, table-cell marche d'ailleur très bien sur IE8 (j'ai eu l'occasion de l'utiliser dernièrement pour une liste horizontale). Le mieux c'est de se concentrer sur les nouvelles versions des navigateurs et coder du CSS propre, puis faire un simple test de browser avant l'affichage de la page pour rediriger les utilisateurs qui utilisent des versions obsolètes vers un lien de téléchargement.

  5. #5
    Expert confirmé
    Avatar de 12monkeys
    Homme Profil pro
    Webmaster
    Inscrit en
    Novembre 2006
    Messages
    4 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2006
    Messages : 4 093
    Par défaut
    Citation Envoyé par E.Fahd Voir le message
    Salam,

    @12monkeys,
    - Développer pour IE7 est de la pure perte de temps à mon avis. IE8 sera prêt dans quelques mois (Novembre je pense) et il est compatible à 100% avec CSS2.1, table-cell marche d'ailleur très bien sur IE8 (j'ai eu l'occasion de l'utiliser dernièrement pour une liste horizontale). Le mieux c'est de se concentrer sur les nouvelles versions des navigateurs et coder du CSS propre, puis faire un simple test de browser avant l'affichage de la page pour rediriger les utilisateurs qui utilisent des versions obsolètes vers un lien de téléchargement.
    J'ai déjà vu ce matin que tu conseillais ceci dans une autre discussion, je ne suis pas un professionnel du domaine, mais je pense que de conseiller ceci me parait pour le moins suicidaire !

    Tu ne veux pas que ton site soit visité ! alors tu peut faire ce que tu indiques...

    Franchement tu vas sur un site, qui t'indique que tu ne peut pas visiter ce site, qu'il faut télécharger un autre programme... Combien de gens vont suivre ton conseil ? 1% ? 2% ?

    Personnellement je passerais mon chemin.

    Et donc tu veux t'affranchir de 73 % à 64 % des internautes (selon les sources) (IE 7 : 42% + IE 6 : 22%) ?

    Citation Envoyé par E.Fahd Voir le message
    - Sinon ne développe pas du tout pour IE7 mais seulement pour Opera, Firefox et IE8 (qui sont touts les 3 respectueux de CSS2.1 et son Box Model). Tu fais un petit test, si l'utilisateur a des versions qui ne respectent pas CSS2.1, tu lui demandes de télécharger des versions récentes d'un des 3 navigateurs.

  6. #6
    Membre averti
    Inscrit en
    Août 2008
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 18
    Par défaut
    Salam,

    @12monkeys,
    - Oui je suis bien conscient de ça. Mais je suis aussi conscient que continuer à supporter les navigateurs anciens c'est contribuer à freiner l'adoption des standards par tout le monde. IE a déjà fait un pas énorme pour livrer un navigateur 100% compatible CSS2.1, et il y aura un déploiement par Windows Update, de façon à ce que touts les utilisateurs utilisant IE7 passent à IE8.

    - Alors oui, faire un site il y a 6 mois uniquement compatible avec FF et Opera c'était vraiment suicidaire, mais aujourd'hui (ou plutôt dans 2 mois) il n'y aura plus aucune raison de le faire, à part freiner la standardisation du web.

    - Puis de toutes façons c'est simple : Tu casseras quelque choses dans les deux cas. Si tu ne fais pas un hack spécialement pour IE, le site marchera sur IE8 mais ne marchera pas sur IE7 et antérieurs. Si tu fais un hack pour IE, le site marchera sur IE7 et antérieurs mais ne marchera pas sur IE8 (d'ailleurs c'est visible sur quelques sites qui ont bricolé pour contourner certains problèmes posés par IE et qui souffrent de problèmes d'affichage sous IE8beta2). Donc à choisir entre supporter l'ancien ou le nouveau, je choisis le nouveau pour la simple raison que l'ancien deviendra vite obsolète.

Discussions similaires

  1. Problème d'alignement vertical
    Par Mister Paul dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 13/12/2010, 16h07
  2. Problème d'alignement vertical
    Par soulflow dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 15/09/2010, 08h22
  3. [div] problème d'alignement vertical
    Par xenos dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 29/11/2006, 13h36
  4. [HTML]Problème d'alignement vertical
    Par shadeoner dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 22/09/2006, 13h10
  5. Problème CSS alignement vertical
    Par Vinzius dans le forum Mise en page CSS
    Réponses: 6
    Dernier message: 10/08/2006, 11h34

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