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 :

menu CSS : hauteur des menus fixe, hauteur des sous menus auto comment faire ?


Sujet :

Dimensionnement en CSS

  1. #1
    Membre confirmé Avatar de ben.IT
    Homme Profil pro
    Inscrit en
    Janvier 2009
    Messages
    431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Puy de Dôme (Auvergne)

    Informations forums :
    Inscription : Janvier 2009
    Messages : 431
    Points : 486
    Points
    486
    Par défaut menu CSS : hauteur des menus fixe, hauteur des sous menus auto comment faire ?
    Bonjour à tous,
    j'utilise un menu horizontal déroulant en CSS. Je souhaite fixer la hauteur des rubriques du menu (pour que esthétiquement chaque rubrique ait la même hauteur).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    	height :40px;/*la hauteur des elements du menu 40px*/
    En ce qui concerne, les sous rubriques et sous sous rubriques, je souhaiterai souterai que la hauteur soit auto :
    J'avais pensé a ceci, mais sans succès :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    #menu li a /* Elements des listes */      
    { 
    height :auto;
    }
    Est ce que quelqu'un sait comment rédiger ca en css ??
    Voici le css relatif au menu :
    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
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    /****************************************************************************************/
    /*MENU*/
    /****************************************************************************************/
     
    #menu, #menu ul /* Liste */     
    {
            padding : 0; /* pas de marge intérieure */
            margin : 0; /* ni extérieure */
            list-style : none; /* on supprime le style par défaut de la liste */
            line-height : 21px; /* on définit une hauteur pour chaque élément 21px */
            text-align : center; /* on centre le texte qui se trouve dans la liste */
    }
     
    #menu /* Ensemble du menu */
    {
    	/*PARAMETRES A AJUSTER*/
    	margin-left:30px;
     
    	margin-top:50px;/*pour separer titre (et logo) du menu*/
     
    	/*padding-bottom:90px;		*/
     
            font-weight : bold; /* on met le texte en gras */
            font-family : Arial; /* on utilise Arial, c'est plus beau ^^ */
            font-size : 12px; /* hauteur du texte : 12 pixels */
    }
     
    #menu a /* Contenu des listes */
    {
            display : block; /* on change le type d'élément, les liens deviennent des balises de type block */
            padding : 0; /* aucune marge intérieure */
            color : #fff; /* couleur du texte */
            text-decoration : none; /* on supprime le style par défaut des liens (la plupart du temps = souligné) */
     
    	/*
    	PARAMETRES A AJUSTER
    	*/
     
    	background : #27314a ;/* couleur de fond #BA9F5A */        
    	width : 100px; /* largeur  modifie origine 140px*/
    	height :40px;/*la hauteur des elements du menu 40px*/
    }
     
    #menu li /* Elements des listes */      
    { 
            float : left; 
            /* pour IE qui ne reconnaît pas "transparent" */
            border-right : 1px solid #fff; /* on met une bordure blanche à droite de chaque élément */
    }
     
     
     
    /* IE ne reconnaissant pas le sélecteur ">" */
    html>body #menu li
    {
            border-right: 1px solid transparent ; /* on met une bordure transparente à droite de chaque élément */
    }
     
    #menu li ul /* Sous-listes */
    { 
            position: absolute; /* Position absolue */
            width: 144px; /* Largeur des sous-listes 144*/
            left: -999em; /* Hop, on envoie loin du champ de vision */
    }
     
     
    #menu li ul li /* Éléments de sous-listes */
    {
            /* pour IE qui ne reconnaît pas "transparent" (comme précédemment) */
            border-top : 1px solid #fff; /* on met une bordure blanche en haut de chaque élément d'une sous liste */
     
    }
     
    /* IE ne reconnaissant pas le sélecteur ">" */
    html>body #menu li ul li                
    {
            border-top : 1px solid transparent; /* on met une bordure transparente en haut de chaque élément */
    }
     
    #menu li ul ul 
    {
            margin    : -42px 0 0 100px ; /* On décale les sous-sous-listes pour qu'elles ne soient pas au dessus des sous-listes 
    		modification du dernier attribut a 140 px pour regler pb des ss menus au lieu de 144px puis 100 px
    		modification du premier attribut  a - 42px pour regler pb ajustement en hauteur des sous menus afin qu ils tombent en face de leur categorie
    		*/ 
     
            /* pour IE qui ne reconnaît pas "transparent" (comme précédemment) */
            border-left     : 1px solid #fff ; /* Petite bordure à gauche pour ne pas coller ... */      
    }
     
    /* IE ne reconnaissant pas le sélecteur ">" ... je me répète ;-) */
    html>body #menu li ul ul                
    {
            border-left     : 1px solid transparent ; /* on met une bordure transparente sur la gauche de chaque élément */
    }
     
    #menu a:hover /* Lorsque la souris passe sur un des liens */    
    {
            color: #000; /* On passe le texte en noir... */
            background: #fff; /* ... et au contraire, le fond en blanc */
    }
     
    #menu li:hover ul ul, #menu li.sfhover ul ul /* Sous-sous-listes lorsque la souris passe sur un élément de liste */
    {
            left: -999em; /* On expédie les sous-sous-listes hors du champ de vision */
    }
     
     
    #menu li:hover ul, #menu li li:hover ul, #menu li.sfhover ul, #menu li li.sfhover ul  /* Sous-listes lorsque la souris passe sur un élément de liste ET sous-sous-lites lorsque la souris passe sur un élément de sous-liste */
    {
            left: auto; /* Repositionnement normal */
            min-height: 0; /* Corrige un bug sous IE */
    }
    merci d'avance,
    cordialement
    benilto

  2. #2
    Membre averti
    Avatar de tzilliox
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2007
    Messages
    153
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2007
    Messages : 153
    Points : 398
    Points
    398
    Par défaut
    Salut benilto !

    Avec le code HTML c'est mieux pour tester.

    Bonne soirée,
    Thomas.

  3. #3
    Membre confirmé Avatar de ben.IT
    Homme Profil pro
    Inscrit en
    Janvier 2009
    Messages
    431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Puy de Dôme (Auvergne)

    Informations forums :
    Inscription : Janvier 2009
    Messages : 431
    Points : 486
    Points
    486
    Par défaut
    bonsoir thomas et merci de ta réponse,
    voici le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <div>
    	<!-- ouverture ul rang 1-->
    	<ul id="menu">
    		<li><a href="index.php">Accueil</a></li>	
     
    	<li><a href="contact.php">Contact</a></li>	<!-- element de rang 1 fixe-->	
     
    </ul> <!--fin de la liste de rang 1 -->
     
     
    </div>
    les rubriques sont stockées dans une base mysql, sinon le code du menu est calqué sur ce modèle, c'est peut être plus claire :
    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
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    <html>
     
    <ul id="menu">
     
    <li>
                    <a href="#">accueil</a>
            </li>
     
            <li>
                    <a href="#">membres</a>
                    <ul>
                            <li><a href="#">connexion</a></li>
                            <li><a href="#">inscription</a></li>
                    </ul>
            </li>
     
            <li>
                    <a href="#">images</a>
                    <ul>
                            <li>
                                    <a href="#">photos</a>
                                    <ul>
                                            <li><a href="#">catégorie 1</a></li>
                                            <li><a href="#">catégorie 2</a></li>
                                    </ul>
     
                            </li>
                            <li>
                                    <a href="#">vidéos</a>
                            </li>
                    </ul>
            </li>
     
            <li>
                    <a href="#">téléchargements</a>
                    <ul>
                            <li><a href="#">vidéos</a></li>
                            <li><a href="#">musiques</a></li>
                    </ul>
            </li>
     
            <li>
                    <a href="#">plus</a>
                    <ul>
                            <li><a href="#">forum</a></li>
                            <li><a href="#">liens</a></li>
                            <li><a href="#">nous contacter</a></li>
                            <li><a href="#">team</a></li>
                            <li><a href="#">recherche</a></li>
                    </ul>
            </li>
     
    </ul>
    </html>
    merci d'avance.
    bonne soirée

  4. #4
    Membre averti
    Avatar de tzilliox
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2007
    Messages
    153
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2007
    Messages : 153
    Points : 398
    Points
    398
    Par défaut
    Bonsoir benilto,

    Les liens de tes sous-menus respectent également la règle qui fixe la hauteur à 40px.
    Il faut donc surcharger cette règle pour que la hauteur des liens des sous-menus deviennent dynamique :
    Code css : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    #menu li ul a {
    	height: auto;
    }

    En ce qui concerne ta question. Le modèle est utile, par contre le code PHP n'est d'aucune utilité. Donc limite toi au code (X)HTML / CSS la prochaine fois, pour que ce soit plus rapide

    Allé bon week-end,
    Thomas

  5. #5
    Membre confirmé Avatar de ben.IT
    Homme Profil pro
    Inscrit en
    Janvier 2009
    Messages
    431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Puy de Dôme (Auvergne)

    Informations forums :
    Inscription : Janvier 2009
    Messages : 431
    Points : 486
    Points
    486
    Par défaut
    merci beaucoup Thomas, j'ai bien noté la règle de surcharge ainsi que ton conseil pour le post.

    bon week-end et encore merci.
    a bientôt

  6. #6
    Membre averti
    Avatar de tzilliox
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2007
    Messages
    153
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2007
    Messages : 153
    Points : 398
    Points
    398
    Par défaut
    De rien benilto !

    N'hésites pas à reposer tes questions
    Thomas.

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

Discussions similaires

  1. Réponses: 10
    Dernier message: 11/05/2014, 15h19
  2. Réponses: 2
    Dernier message: 21/09/2013, 15h18
  3. Réponses: 1
    Dernier message: 28/06/2012, 16h04
  4. Réponses: 1
    Dernier message: 27/04/2012, 16h41
  5. Menu CSS vertical, petit espace entre les images sous IE
    Par Death83 dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 24/10/2005, 09h52

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