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 :

Alignement vertical d'un UL en inline


Sujet :

Positionnement en CSS

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de PoZZyX
    Inscrit en
    Août 2005
    Messages
    426
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 426
    Par défaut Alignement vertical d'un UL en inline
    Hello,

    j'ai un pitit problème d'alignement vertical avec mon site. J'ai fait des recherche et je vois sur certains sites qu'on ne peut pas employer le vertical-align et sur d'autres qu'on peut le faire si on utilise un display inline.

    Mais malheureusement cela ne fonctionne pas.

    Voici la partie de code concernée pour aligner mon menu au bas du div:
    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
     
    #menu_user
    {
    	float:right;
    	border:1px solid #000000;
    	height:70px;
    	padding-bottom:0px;
    }
     
     
    #menu_user ul
    {
    	margin-right:25px;
    	vertical-align:bottom;
    	height:20px;
    }
     
    #menu_user li
    {
    	display:inline;
    	height:20px;
    	border:1px solid #000000;
    }
     
    <div id="menu_user">
    	<ul>
    		<li>S'identifier</li>
    		<li>S'enregistrer</li>
    	</ul>
    </div>
    Merci d'avance pour votre aide et bonne soirée !!!

  2. #2
    Membre Expert Avatar de Erwan31
    Profil pro
    Inscrit en
    Février 2008
    Messages
    2 177
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 2 177
    Par défaut
    La propriété vertical-align ne s'applique qu'aux TD (ou alors aux éléments dotés d'un display:table-cell;) et aux éléments inline (pour centrer un élément inline par rapport à un autre).

    Voila qui devait faire l'affaire:

    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
    #menu_user
    {
    	display: table-cell;
    	vertical-align:bottom;
    	border:1px solid #000;
    	height:70px;
    }
     
     
    #menu_user ul
    {
    	display: inline;
    	height:20px;
    	margin-right:25px;
    }
    Mais tu devra trouver une alternative au comportement flottant puisque le
    float:right fait passer la valeur de display à block et cette valeur devient prioritaire sur table-cell.

    Attention la valeur table-cell n'est pas implémenté sous IE, tu dois donc passer par une propriété Microsoft, voir un récent post sur le centrage
    et la méthode proposée par CandyGirl.

  3. #3
    Membre éclairé Avatar de PoZZyX
    Inscrit en
    Août 2005
    Messages
    426
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 426
    Par défaut
    merci mais ça ne m'arrange pas vraiment cette méthode, je vais pitetre expliquer le problème en entier ça sera mieux.

    alors je me suis dit le #logo je le mets en float left, le id_menu en float right, après je fait un clear et je mets le container.

    et j'avais donc besoin du vertical align en bas pour coller mon menu utilisateur au container.

    Est-ce qu'il y a une façon plus logique de faire ?

    Merci d'avance

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 912
    Par défaut
    @Erwan31:

    Il me semble que le display:table est souvent nécessaire pour un bon fonctionnement du display:table-cell. En ce sens dans ce cas j'attribuerais un display:table au #menu_user et le table-cell au #menu_user, ce qui n'empêche pas le float sur le #menu_user:

    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
    #menu_user
    {
    	border:1px solid #000000;
    	height:70px;
    	padding-bottom:0px;
    	float:right;
    	display:table;
    }
     
     
    #menu_user ul
    {
    	padding-right:25px;
    	vertical-align:bottom;
    	height:20px;
    	display:table-cell;
    }
     
    #menu_user li
    {
    	display:inline;
    	height:20px;
    	border:1px solid #000000;
    }
    @PoZZyX:

    Au vu de ton shéma, tu peux aussi étudier l'éventualité d'un positionnement absolu, de jouer avec un margin-négatif,... Mais c'est difficile de choisir une option ou l'autre sans voir le design, comment cleui-ci réagirait à l'garandissement de la police ou la réduction de la fenêtre (design de taille fixe ?), si des informations importantes se trouvent au-dessus de ton login,...
    Les bons réflexes:
    • avant de poser une question:
      règles | faq | tutoriels | recherche
    • clarté, politesse, vocabulaire et orthographe soignés = efficacité
    • remercier ceux qui ont pris le temps d'aider et :resolu: si c'est le cas

  5. #5
    Membre éclairé Avatar de PoZZyX
    Inscrit en
    Août 2005
    Messages
    426
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 426
    Par défaut
    dans l'idée de base, je voulais une structure (des éléments comme sur mon schéma) similaire au site http://www.good-tutorials.com/

  6. #6
    Membre Expert Avatar de Erwan31
    Profil pro
    Inscrit en
    Février 2008
    Messages
    2 177
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 2 177
    Par défaut
    Salut,
    ok CandyGirl je savais pas pour le display:table merci pour l'info mais es tu
    certaine que le display:block dû au float ne prend pas le dessus sur le dsiplay:table? ça m'étonne un peu.

    Ceci dit je comprends pas ton montage: il me semble que PoZZyX cherchait à aligner en bas l'UL et non les LI.


    @PoZZyX. J'aurai dû y penser avant puisque que ta div menu_user à une hauteur fixe:
    attribuer à celle-ci en un position relative (sert de référent pour le positionnement de ses enfant positionnées) et ton UL en position: asbolute avec right:0 et bottom:0
    en plaçant ton menu aprés le logo dans le code.

  7. #7
    Membre éclairé Avatar de PoZZyX
    Inscrit en
    Août 2005
    Messages
    426
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 426
    Par défaut
    je sais pas quelle est la différence entre mettre en bas l'ul ou le li, moi j'aimerais juste que chaque <li> de mon <ul> soit "posé" sur le haut du container.

    selon le dernier message, j'ai essayé :
    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
     
    #menu_user
    {
    	float:right;
    	position:relative;
    	border:1px solid #000000;
    	height:70px;
    	margin-right:25px;
    }
     
     
    #menu_user ul
    {
    	height:20px;
    }
     
    #menu_user li
    {
    	display:inline;
    	border:1px solid #000000;
    	position:absolute;
    	bottom:0px;
    }
    mais c'est toujours pas ça

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 912
    Par défaut
    Citation Envoyé par Erwan31 Voir le message
    Salut,
    ok CandyGirl je savais pas pour le display:table merci pour l'info mais es tu
    certaine que le display:block dû au float ne prend pas le dessus sur le dsiplay:table?
    Certaine à 100% non, mais ce que je lis dans la spécification ne le contredis pas en tous cas et les tests sur navigateurs semblent le confirmer:

    Citation Envoyé par css2
    'float'
    [...]

    left
    L'élément génère une boîte de bloc qui flotte à gauche.
    Citation Envoyé par css2
    17.2 Le modèle de table de CSS

    [...]

    table (TABLE en HTML)

    Spécifie un comportement de table de type bloc pour un élément : c'est un bloc rectangulaire qui participe à un contexte de mise en forme de bloc ;
    inline-table (TABLE en HTML)
    Spécifie un comportement de table de type en-ligne pour un élément : c'est un bloc rectangulaire qui participe à un contexte de mise en forme en-ligne ;
    table-row (TR en HTML)
    Spécifie que l'élément est une rangée de cellules ;
    Donc le table étant bien de type bloc, il n'y a rien de contradictoire avec le float, juste un plus disant que c'est un table.

    Citation Envoyé par Erwan31 Voir le message
    Ceci dit je comprends pas ton montage: il me semble que PoZZyX cherchait à aligner en bas l'UL et non les LI.
    Dans son exemple, qu'on aligne le ul ou les li en bas le résultat est le même d'où ma proposition. Après c'est clair qu'il faut voir le contexte, le display:table puis table-cell impliquant une imbrication. Mais perso je ne me prendrais pas la tête avec du display:table pour cette mise en page.
    Les bons réflexes:
    • avant de poser une question:
      règles | faq | tutoriels | recherche
    • clarté, politesse, vocabulaire et orthographe soignés = efficacité
    • remercier ceux qui ont pris le temps d'aider et :resolu: si c'est le cas

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

Discussions similaires

  1. [DIV][CSS] Alignement vertical
    Par pmartin8 dans le forum Mise en page CSS
    Réponses: 15
    Dernier message: 02/11/2005, 14h50
  2. Réponses: 6
    Dernier message: 03/10/2005, 16h08
  3. CSS Alignement vertical pour images dynamiques
    Par bébé dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 17/09/2005, 15h43
  4. Alignement vertical au centre
    Par krfa1 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 29/08/2005, 22h23
  5. probleme d'alignement vertical
    Par mangamat dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 15/02/2005, 22h46

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