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 :

Afficher menu et sous menu avec hover


Sujet :

Survol d'un élément en CSS (:hover)

  1. #1
    Membre averti Avatar de Philcmoi
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    666
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 666
    Points : 412
    Points
    412
    Par défaut Afficher menu et sous menu avec hover
    Bonjour.
    voila mon code:
    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
    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
    <aside>
        <br><br>
        <a><span id="changer"></span></a>
     
        <br><br>
        <br><br>
     
     
          <div id="menuDeroulant">
     
            <div class="sousMenueDeroulant">
     
              <button class="choixParmis">
              <img class="fleche" src="images/blocsInverse.png">
              <img class="fleche2" src="images/blocs.png">
              <div class="generalite"><h1>Généralités</h1></div>
              </button>
              <ul class="listeChoix">
              <li><a href="#">Link 1</a></li>
              <li><a href="#">Link 2</a></li>
              <li><a href="#">Link 3</a></li>
              </ul>
            </div>
     
            <br>
            <br>
     
            <div class="sousMenueDeroulant">
     
              <button class="choixParmis">
                <img class="fleche" src="images/blocsInverse.png">
                <img class="fleche2" src="images/blocs.png">
                <div class="generalite"><h1>Généralités</h1></div>
              </button>
              <ul class="listeChoix">
              <li><a href="#">Link 1</a></li>
              <li><a href="#">Link 2</a></li>
              <li><a href="#">Link 3</a></li>
              </ul>
            </div>
     
            <br>
            <br>
     
            <div class="sousMenueDeroulant">
     
              <button class="choixParmis">
                <img class="fleche" src="images/blocsInverse.png">
                <img class="fleche2" src="images/blocs.png">
                <div class="generalite"><h1>Généralités</h1></div>
              </button>
              <ul class="listeChoix">
              <li><a href="#">Link 1</a></li>
              <li><a href="#">Link 2</a></li>
              <li><a href="#">Link 3</a></li>
              </ul>
            </div>
     
          </div>
     
       </aside>

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <a><span id="changer"></span></a>
    Code css : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    #changer::after{
      content:"DEPLIER" ;
        }
     
    #changer:hover::after {
      content:"REPLIER";
      #menuDeroulant {display:block ;}; 
      .sousMenueDeroulant {display: block;};
      .listeChoix {display: block;};
    }
    Le déploiement se fait uniquement sur hover du menue et sous menue et non en survolant de #changer.
    Je cherche depuis 2 jours Merci de votre coup de main.

  2. #2
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 062
    Points : 44 621
    Points
    44 621
    Par défaut
    Bonjour,
    est ce que tu as simplement conscience de ce que tu écris en utilisant cette règle imbriquée ?
    Code css : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    #changer:hover::after {
      content:"REPLIER";
     
      #menuDeroulant {display:block ;}; 
      .sousMenueDeroulant {display: block;};
      .listeChoix {display: block;};
    }
    et ce compte tenu de la complexité inutile du HTML !

  3. #3
    Membre averti Avatar de Philcmoi
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    666
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 666
    Points : 412
    Points
    412
    Par défaut
    Merci ce que je demande est imposible à faire sans java script.
    Donc hors sujet.

  4. #4
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 062
    Points : 44 621
    Points
    44 621
    Par défaut
    Merci ce que je demande est imposible à faire sans java script.
    sauf que difficile à voir ce que tu veux faire compte tenu du HTML, très exotique, que tu fournis !!!!

  5. #5
    Membre averti Avatar de Philcmoi
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    666
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 666
    Points : 412
    Points
    412
    Par défaut
    Bon comme je n'ai plus à déplier les informations.
    La autre probleme est d'afficher une div gride area caché.
    Le survol est bien détecter (couleure verte à sous ligné rouge mais je ne peux pas afficher .cours
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     .entete2 .barreHorizontal2 .coursTemplate:hover {
        text-align: center;
        height: 3em;
        border: #ffffff;
        background-color:green;
        border-bottom:#ff0000 solid;
        .cours {visibility: visible;} 
      }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    .cours {
        grid-area: cours;
        grid-column: 2/5;
        grid-row: 3/6;
        text-align: left;
        background-color: #F8F9FA;
        z-index: 2;
    }
     
    .coursTemplate li {
        background-color: #0080ff;
        .cours {visibility: visible;};
    }
    .cours {visibility: hidden;}
    Merci pour vos aides je suis perdue.

  6. #6
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 062
    Points : 44 621
    Points
    44 621
    Par défaut
    Si tu veux une aide pertinente il faut nous fournir la structure HTML que tu utilises et qui correspond

  7. #7
    Membre averti Avatar de Philcmoi
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    666
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 666
    Points : 412
    Points
    412
    Par défaut
    Deja merci de m'accordais ton aide.
    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    <body>
      <div class="container">
        <nav class="entete">
          <ul class="barreHorizontal">
            <li><img src="images/logoCnam.png"><br>Paris</li>
            <li><a href="#" style="text-decoration:none">Accueil</a></li>
            <li><a href="#" style="text-decoration:none">Tableau de bord</a></li>
            <li><a href="#" style="text-decoration:none">Mes cours</a></li>
            <li class="accesDirect"><a href="#" style="text-decoration:none">Accès direct</a>
              <ul class="sousMenu">
                <li><a href="#" style="text-decoration:none">Portail ENF</a></li>
                <li><a href="#" style="text-decoration:none">Site national du Cnam</a></li>
              </ul>  
            </li>
          </ul>
        </nav>
     
        <div class="titre"> <h3>- Présentiel : Architecture et langages Web<br>
                          (2023 - 2024 Semestre 2)</h3>
        </div>
     
      <div class="entete2">
        <ul class="barreHorizontal2">
          <li><a class="coursTemplate" href="#" style="text-decoration:none">Cours</a></li>
          <li><a href="#" style="text-decoration:none">Participants</a></li>
          <li><a class="Notes" href="#" style="text-decoration:none">Notes</a></li>
          <li><a href="#" style="text-decoration:none">Compétences</a></li>
        </ul>
      </div>
    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
    17
    18
    19
    20
    21
    <div class="cours">
          <div>
            <h2><img src="images/blocs.png">Généralités</h2>
          </div>
          <p>
          <ul>
            <li>
            <a href="#">Description de l'UElangages Web</a>
            </li>
            <li>
            <a href="#">Les séances  auront lieu le jeudi de 18h00 à 21h00 en salle 31.1.03 PC</a>
            </li>
            <li>
            <a href="#">La première séance aura lieu le jeudi 29 février.</a>
            </li>
          </ul>
          </p>
            <p> Précision : Ce cours fait partie de la nouvelle version du certificat Développeur web junior. 
              Dans cette nouvelle version</p>
              <img src="images/messages.png">
        </div>

  8. #8
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 062
    Points : 44 621
    Points
    44 621
    Par défaut
    Tel que tu t'y prends il aurait fallu que la <div class="cours"> soit enfant direct de l'élément <a class="coursTemplate"> ce qui n'est pas le cas, ils n'ont pas non plus le même parent ce qui aurait permis de cibler avec les sélecteurs + ou ~.

    Néanmoins la pseudo-classe :has() peut te sauver en écrivant ce code par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    body:has(.coursTemplate:hover) .cours {
      background-color: yellow;
      visibility: visible;
    }
    Ressource :

    Nota : attention au inter-actions avec les éléments apparaissant qui ne seront pas possible !

  9. #9
    Membre averti Avatar de Philcmoi
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    666
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 666
    Points : 412
    Points
    412
    Par défaut
    J'ai essayer de metre SPAN cours pour qu'il soit un enfant direct de coursTemplate, comme tu la suggérer.
    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    <div class="entete2">
        <ul class="barreHorizontal2">
          <li><a class="coursTemplate" href="#" style="text-decoration:none">Cours</a></li>
          <li><a href="#" style="text-decoration:none">Participants</a></li>
          <li><a class="Notes" href="#" style="text-decoration:none">Notes</a></li>
          <li><a href="#" style="text-decoration:none">Compétences</a></li>
        </ul>
        <span class=cours>
          <div>
            <h2><img src="images/blocs.png">Généralités</h2>
          </div>
          <p>
          <ul>
            <li>
            <a href="#">Description de l'UE NFA040 Architecture et langages Web</a>
            </li>
            <li>
            <a href="#">Les séances de NFP040 auront lieu le jeudi de 18h00 à 21h00 en salle 31.1.03 PC (au 2 rue Conté).</a>
            </li>
            <li>
            <a href="#">La première séance aura lieu le jeudi 29 février.</a>
            </li>
          </ul>
          </p>
            <p> Précision : Ce cours fait partie de la nouvelle version du certificat Développeur web junior. 
              Dans cette nouvelle version, les modules NFA016 (développement web côté client) 
              et NFA031 (programmation avec java) sont remplacés par NFA040 : Architecture et langages Web 
              et NFA041 : Programmation Javascript</p>
              <img src="images/messages.png">
        </span>
    </div>
    Mais le problemme reste le même ???

  10. #10
    Membre averti Avatar de Philcmoi
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    666
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 666
    Points : 412
    Points
    412
    Par défaut
    Voila ce que j'ai fait.
    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    <div class="entete2">
        <ul class="barreHorizontal2">
          <li><a class="coursTemplate" href="#" style="text-decoration:none">Cours
          <span class="cours">
          <div>
            <h2><img src="images/blocs.png">Généralités</h2>
          </div>
          <p>
          <ul>
            <li>
            <a href="#">Description de l'UE NFA040 Architecture et langages Web</a>
            </li>
            <li>
            <a href="#">Les séances de NFP040 auront lieu le jeudi de 18h00 à 21h00 en salle 31.1.03 PC (au 2 rue Conté).</a>
            </li>
            <li>
            <a href="#">La première séance aura lieu le jeudi 29 février.</a>
            </li>
          </ul>
          </p>
            <p> Précision : Ce cours fait partie de la nouvelle version du certificat Développeur web junior. 
              Dans cette nouvelle version, les modules NFA016 (développement web côté client) 
              et NFA031 (programmation avec java) sont remplacés par NFA040 : Architecture et langages Web 
              et NFA041 : Programmation Javascript</p>
              <img src="images/messages.png">
          </span>
     
          </a></li> ect ...

    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
    .cours{ 
        grid-area : cours;
        grid-column: 2/5;
        grid-row: 4/7;
        text-align: left;
        background-color: #047df6;
        z-index: 2;
        /* display:none; */
    }
     
    .cours span {display:none}
     
    a.coursTemplate:hover span{
     
        .cours {
        display:block;
        width: 80px;
        height: 80px}
    }
    Probleme le texte reste figer sur l'écran. ???

  11. #11
    Membre averti Avatar de Philcmoi
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    666
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 666
    Points : 412
    Points
    412
    Par défaut
    Il sufit de faire
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <li class="coursTemplate"><a  href="#" style="text-decoration:none">Cours
    <div class="cours">
    ect ...
    <div>

  12. #12
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 062
    Points : 44 621
    Points
    44 621
    Par défaut
    J'ai essayer de metre SPAN cours pour qu'il soit un enfant direct de coursTemplate, comme tu la suggérer.
    Oui mais non car j'ai aussi palé de structure très exotique et celle là l'est encore plus.
    Une fois que le parseur HTML à fait son boulot ta structure ne ressemble plus à cela, elle ressemblera plutôt à :
    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    <div class="entete2">
        <ul class="barreHorizontal2">
          <li><a class="coursTemplate" href="#" style="text-decoration:none">Cours...
          <span class="cours">
          <div>
            <h2><img src="images/blocs.png">Généralités</h2>
          </div>
          <p>
          </p></span></a><ul><a class="coursTemplate" href="#" style="text-decoration:none">
            </a><li><a class="coursTemplate" href="#" style="text-decoration:none">
            </a><a href="#">Description de l'UE NFA040 Architecture et langages Web</a>
            </li>
            <li>
            <a href="#">Les séances de NFP040 auront lieu le jeudi de 18h00 à 21h00 en salle 31.1.03 PC (au 2 rue Conté).</a>
            </li>
            <li>
            <a href="#">La première séance aura lieu le jeudi 29 février.</a>
            </li>
          </ul>
          <p></p>
            <p> Précision : Ce cours fait partie de la nouvelle version du certificat Développeur web junior.
              Dans cette nouvelle version, les modules NFA016 (développement web côté client)
              et NFA031 (programmation avec java) sont remplacés par NFA040 : Architecture et langages Web
              et NFA041 : Programmation Javascript</p>
              <img src="images/messages.png">
     
     
          </li> ect ...
      </ul></div>
    et là patraque c'est la catastrophe certains éléments sont déplacés.

    Il faut toujours vérifier son code HTML, que cela fonctionne ou pas !

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

Discussions similaires

  1. Décalage barre de menu avec hover
    Par chloeb dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 23/10/2012, 22h37
  2. Afficher console cmd sous Fedora avec code Java
    Par emna. dans le forum Général Java
    Réponses: 3
    Dernier message: 18/05/2011, 09h23
  3. Menu avec :hover
    Par lassoya dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 13/11/2010, 00h28
  4. Menu avec hover sous ie6 sur le premier élément de la liste
    Par fabight dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 24/05/2008, 13h37
  5. Afficher menu avec Clic Droit dans un userform
    Par damsmut dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 11/04/2008, 11h12

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