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 déroulant identique


Sujet :

CSS

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Analyse système
    Inscrit en
    Janvier 2018
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Analyse système

    Informations forums :
    Inscription : Janvier 2018
    Messages : 32
    Par défaut Menu déroulant identique
    Bonjour,

    J'ai un pb avec ce code que j'ai trouvé et modifié mais sans doute trop modifié !!!

    Mon image en deuxième niveau se répète au 3ème et 4ème. J'ai beau cherché dans un cours, je ne trouve pas.

    Pouvez-vous m'aider svp ?

    Voici mon
    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <ul id="menu">
    	<li><a href="#">&nbsp </a></li>
    	<li><a href="#">&nbsp </a>
    		<ul>
    			<li><a href="p2.html">&nbsp </a></li>
    		 	<li><a href="p3.html">&nbsp </a></li>
    			<li><a href="p4.html">&nbsp </a></li>
    		</ul>
    	</li>
    </ul>

    Et voici le
    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    /* background*/
    #menu li:first-child{
    background:url(../images/b1_nv2.jpg);
    margin-top:-3px;
    }
    #menu li:nth-child(2){
    background:url(../images/b2_nv2.jpg);
    }
     
     /*background survol */
    #menu li:first-child:hover, #menu2 li:first-child li:hover{
    background:url(../images/visiteurs/b1a_nv2.jpg);
    }
    #menu li:nth-child(2):hover{
    background:url(../images/b2a_nv2.jpg);
    }
    #menu li:nth-child(2) li{
    background:url(../images/b21_nv2.jpg);
    }
    #menu li:nth-child(2) li:hover{
    background:url(../images/b21a_nv2.jpg); 
    }
    #menu li:nth-child(2) li{
    background:url(../images/b22_nv2.jpg);
    }
    #menu li:nth-child(2) li:hover{
    background:url(../images/b22a_nv2.jpg); 
    }
    #menu li:nth-child(2) li{
    background:url(../images/b23_nv2.jpg);
    }
    #menu li:nth-child(2) li:hover{
    background:url(../images/b23a_nv2.jpg); 
    }

    Encore merci pour votre aide

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    pour ne cibler qu'un niveau à la fois (et pas les suivants) :

    Code css : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    #menu > li { ... } /* niveau 1 */
     
    #menu > li > ul > li { ... } /* niveau 2 */

  3. #3
    Membre émérite
    Homme Profil pro
    Retraité informatique
    Inscrit en
    Juin 2012
    Messages
    519
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Retraité informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Juin 2012
    Messages : 519
    Par défaut
    Sur la réponse de Jérome, et pour être positif et apporter quelque chose, j'ai remplacé le background par des couleurs à la place d'images fantômes et tenté d'apporter une solution au problème de laurent84200
    Si ça peut l'aider:
    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
    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
    * {
    	margin: 0;								/* Mettons TOUTES les marges extérieures à zéro 				*/
    	padding: 0;								/* Mettons TOUS les espaces intérieures à zéro  				*/
    	box-sizing: border-box;					        /* largeur des boites= width+padding+border     				*/
    }
    html, body {
    	height: 100%;							/* Toute la hauteur de l'écran		*/							
    	font-size: 100%;						        /* 100%=16px=1rem	  */											
    }
    body {
    	font-family: "Times New Roman", Times, serif;  Définition des polices de base							
    	font-size: 100%;						         /* 100%=16px=1em	*/											
    }
    #menu {
    	width: 10%;							  /* Définissons une largeur pour mobile first					*/
    	margin: 0 auto;							  /* centrons ce menu								        */
    }
    #menu ul, #menu li {
    	list-style-type: none;					/* supprimons TOUTES les puces								*/
    }
    /* définition du premier niveau					 */
    #menu > li {
    	background-color: blue;				/* tous les li du premier niveau */
    }
    #menu > li:nth-child(2) {
    	background-color: yellow;			/* seulement le deuxième li du premlier niveau */
    }
    /* définition des li du premier niveau au survol*/
    #menu > li:hover {
    	background-color: maroon;
    }
    /* définition des li du deuxième niveau */
    #menu > li li {
    	background-color: green;  			/* de TOUS les li du deuxième niveau */
    	padding-left:50px;
    }
    #menu > li li:nth-child(2) {
    	background-color: black;  			/* du deuxième li du deuxième niveau */
    }
    #menu > li li:nth-child(3) {
    	background-color: red;  				/* dtroisème li du deuxième niveau */
    }
    #menu > li li:nth-child(4) {
    	background-color: magenta;  				/* du quatrième li du deuxième niveau */
    }
    /* définition des li du deuxième niveau au survol*/
    #menu > li:nth-child(2) li:hover {
    	background-color: orange;                          /* pour simplifier tous les LI en orange */
    }
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <ul id="menu">
      <li><a href="#">1</a></li>
      <li><a href="#">2</a>
        <ul>
          <li><a href="#">2.1</a></li>
          <li><a href="#">2.2</a></li>
          <li><a href="#">2.3</a></li>
        </ul>
      </li>
    </ul>
    Mais c'est une approche partielle et très rapide, à adapter.

  4. #4
    Membre averti
    Homme Profil pro
    Analyse système
    Inscrit en
    Janvier 2018
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Analyse système

    Informations forums :
    Inscription : Janvier 2018
    Messages : 32
    Par défaut
    #JefReb
    Je vous remercie pour votre aide précieuse. Je vais essayer de mettre en application votre démo et je vous tiens informé.

  5. #5
    Membre averti
    Homme Profil pro
    Analyse système
    Inscrit en
    Janvier 2018
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Analyse système

    Informations forums :
    Inscription : Janvier 2018
    Messages : 32
    Par défaut
    Bonjour,

    Grace à vos explications j'ai avancé mais là je bute sur les sous menus de mon deuxième "li" pour lesquels je n'arrive pas a afficher l'image désirée.
    Cela me donne mes images de mon troisième "li", et si je ne paramètre pas le css de mon 3ème "li", le second fonctionne mais le 3ème est identique !!! J'espère que je suis assez clair


    Comment faire ?

    Voici mon code html, que j'ai développé par rapport à mon post précédent :

    Code html : 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
    <ul id="menu2">
    	<li><a href="#">&nbsp </a></li>
    	<li><a href="#">&nbsp </a>
    		<ul>
    			<li><a href="p2.html">&nbsp </a></li>
    		 	<li><a href="p3.html">&nbsp </a></li>
    			<li><a href="p4.html">&nbsp </a></li>
    		</ul>
    	</li>
    <li><a href="#">&nbsp </a>
    		<ul>
    			<li><a href="p5.html">&nbsp </a></li>
    			<li><a href="p6.html">&nbsp </a></li>
    		</ul>
      </li>
    </ul>

    Et voici le nouveau code css (que j'ai simplifié en mettant uniquement la partie traitant des menus déroulants :
    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
    /* background menu 1er niveau*/
    #menu2 li:first-child{
    background:url(../images/visiteurs/b1_nv.jpg);
    }
    #menu2 li:nth-child(2){
    background:url(../images/visiteurs/b2_nv.jpg);
    }
    #menu2 li:nth-child(3){
    background:url(../images/visiteurs/b3_nv.jpg);
    }
    #menu2 li:nth-child(4){
    background:url(../images/visiteurs/b4_nv.jpg);
    }
    #menu2 li:nth-child(5){
    background:url(../images/visiteurs/b5_nv.jpg);
    }
    #menu2 li:last-child{
    background:url(../images/visiteurs/b6_nv.jpg);
    }
     
     /*background menu 1er niveau au survol */
    #menu2 li:first-child:hover {
    background:url(../images/visiteurs/b1a_nv.jpg);
    }
    #menu2 li:nth-child(2):hover{
    background:url(../images/visiteurs/b2a_nv.jpg);
    }
    #menu2 li:nth-child(3):hover{
    background:url(../images/visiteurs/b3a_nv.jpg);
    }
    #menu2 li:nth-child(4):hover{
    background:url(../images/visiteurs/b4a_nv.jpg);
    }
    #menu2 li:nth-child(5):hover{
    background:url(../images/visiteurs/b5a_nv.jpg);
    }
    #menu2 li:last-child:hover{
    background:url(../images/visiteurs/b6a_nv.jpg);
    }
     
     
    /*background menu 2ème niveau - PRESENTATION*/
    #menu2 li ul li:nth-child(1){
    background:url(../images/visiteurs/b21_nv.jpg);
    }
    #menu2 li ul li:nth-child(2){
    background:url(../images/visiteurs/b22_nv.jpg);
    }
    #menu2 li ul li:nth-child(3){
    background:url(../images/visiteurs/b23_nv.jpg);
    }
     
     
     /*background menu 2ème niveau au survol - PRESENTATION*/
     
    #menu2 li ul li:nth-child(1):hover{
    background:url(../images/visiteurs/b21a_nv.jpg);
    }
    #menu2 li ul li:nth-child(2):hover{
    background:url(../images/visiteurs/b22a_nv.jpg);
    }
    #menu2 li ul li:nth-child(3):hover{
    background:url(../images/visiteurs/b23a_nv.jpg);
    }
     
     
     
    /*background menu 2ème niveau - SERVICES*/
    #menu2 li ul li:nth-child(1){
    background:url(../images/visiteurs/b31_nv.jpg);
    }
    #menu2 li ul li:nth-child(2){
    background:url(../images/visiteurs/b32_nv.jpg);
    }
     
     /*background menu 2ème niveau au survol - SERVICES*/
     
    #menu2 li ul li:nth-child(1):hover{
    background:url(../images/visiteurs/b31a_nv.jpg);
    }
    #menu2 li ul li:nth-child(2):hover{
    background:url(../images/visiteurs/b32a_nv.jpg);
    }
    Merci pour votre aide.

  6. #6
    Membre émérite
    Homme Profil pro
    Retraité informatique
    Inscrit en
    Juin 2012
    Messages
    519
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Retraité informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Juin 2012
    Messages : 519
    Par défaut
    Laurent, n'aurais-tu pas lu les explications de Jreaux62
    Si tu veux cibler précisément il faut utiliser > pour sélectionner les enfants directs d'un parent.

    De plus il ne faut pas oublier les ;
    ainsi &nbsp s'écrit &nbsp;

Discussions similaires

  1. recuperation valeur menu déroulant
    Par jerome1 dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 08/06/2005, 11h39
  2. [menu]faire un menu déroulant
    Par Nadine dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 24/03/2005, 08h33
  3. Dimensions d'un Menu déroulant
    Par polo-j dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 11/02/2005, 14h26
  4. Menu déroulant valeur par défaut
    Par Gourouni dans le forum ASP
    Réponses: 11
    Dernier message: 06/12/2004, 16h31
  5. Menu déroulant suite au passage sur un TMenuItem
    Par James_ dans le forum C++Builder
    Réponses: 2
    Dernier message: 05/05/2004, 14h31

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